-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.xml
72 lines (59 loc) · 7.85 KB
/
index.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Dear Fan</title>
<link>https://iamfan.cn/</link>
<description>Recent content on Dear Fan</description>
<generator>Hugo -- gohugo.io</generator>
<language>en</language>
<lastBuildDate>Fri, 02 Aug 2019 19:07:14 +0000</lastBuildDate>
<atom:link href="https://iamfan.cn/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>360加固记录批量删除脚本</title>
<link>https://iamfan.cn/post/del_jiagu_history/</link>
<pubDate>Fri, 02 Aug 2019 19:07:14 +0000</pubDate>
<guid>https://iamfan.cn/post/del_jiagu_history/</guid>
<description>需求背景 得益于360加固的强大且免费,以及在Linux平台下良好的易用性,在过去的三年多时间里,一直在使用Jenkins自动化构建应用的同时进行应用加固,导致产生了3000多条加固记录。官网平台每一页只显示5条,而且不支持批量删除。如果需要手动删除这些记录,除了需要耐心,还需要花费大量的时间。
注意事项 由于需要实现的功能单一,没有必要实现自动登陆的功能 使用之前需要先在网页端手动登陆后将cookie复制到脚本中 github地址 #!/usr/bin/python # -*- coding: UTF-8 -*- import sys import requests del_app_url = 'http://jiagu.360.cn/web/apk/del' app_list_url = 'http://jiagu.360.cn/web/apk/list' total_count = 1 # 浏览器登录360加固平台,从控制台复制出cookies,填写到下面单引号中 cookies = dict(cookies_are='') def del_app(app): params = {'apkMd5': app['apkMd5']} result = requests.get(del_app_url, cookies=cookies, params=params).json() name = app['name'].encode(&quot;utf-8&quot;) del_result = result['errMsg'] if result['errCode'] == 0 else result['data'] print ('删除%s加固记录%s' % (name, del_result.encode(&quot;utf-8&quot;))) def get_app_list(): params = dict() params['limit'] = 10 params['offset'] = 0 params['name'] = '' params['fileName'] = '' return requests.</description>
</item>
<item>
<title>生日悖论</title>
<link>https://iamfan.cn/post/birthday_paradox/</link>
<pubDate>Sat, 15 Jun 2019 10:25:13 +0000</pubDate>
<guid>https://iamfan.cn/post/birthday_paradox/</guid>
<description>周六的早晨,刷到一条有趣的博文。原文如下: 有关生日悖论的词条
维基百科 百度百科 这是一个很有趣的一个问题,自己就用Kotlin模拟了一遍。
假设有10000000个班级,每个班级人数为23人:
package com.birthdayparadox import java.util.* class BirthdayParadox { companion object { private const val classNum = 10000000 private const val studentNum = 23 @JvmStatic fun main(args: Array&lt;String&gt;) { var equalTimes = 0 for (i in 0 until classNum) { val randomArray = createRandomArray(studentNum) if (isSameElementInArray(randomArray)) { equalTimes++ } } val percent = equalTimes * 1.0f / classNum * 100 println(&quot;学生人数为 $studentNum 的 $classNum 个班级中生日相同的概率为:$percent%&quot;) } private fun createRandomArray(size: Int): IntArray { val ia = IntArray(size) for (i in 0 until size) { ia[i] = Random().</description>
</item>
<item>
<title>歪脸网Jenkins视频教程</title>
<link>https://iamfan.cn/post/jenkins_video_tutorial/</link>
<pubDate>Sat, 20 Oct 2018 11:09:40 +0000</pubDate>
<guid>https://iamfan.cn/post/jenkins_video_tutorial/</guid>
<description> 录制人员:杨凡 录制时间:2018年5月6日 歪脸网Jenkins持续开发平台搭建于2017年3月,至今经过多次优化,已经达到了生产环境的要求。本视频主要针对Jenkins持续开发平台下的Android动态打包、360加固、蒲公英上传分发做一个简单的介绍。
点击去Youtube中观看高清视频
</description>
</item>
<item>
<title>上传应用到蒲公英平台的Jenkins插件</title>
<link>https://iamfan.cn/post/jenkins_upload_to_pgyer/</link>
<pubDate>Fri, 15 Sep 2017 10:46:51 +0000</pubDate>
<guid>https://iamfan.cn/post/jenkins_upload_to_pgyer/</guid>
<description>简单介绍 蒲公英官方网址 https://www.pgyer.com/
蒲公英平台可以让开发者和企业将应用上传到网站,生成安装链接和二维码用户在手机上打开安装链接,或扫码二维码,即可开始安装!
因此,这款upload-pgyer的Jenkins插件可以让开发者将apk/ipa文件上传到蒲公英平台!并且这款插件可以将蒲公英平台返回的应用信息解析后注入到Jenkins的全局变量中,这样你就可以很方便的在其他构建步骤中使用这些返回的信息,你可以在Jenkins的job配置页面的构建和构建后操作这两个操作中点击添加构建步骤选择upload to pgyer with apiVx。
界面截图 参数介绍 需要填写的字段 字段的解释 pgyer uKey (必填) 用户Key,用来标识当前用户的身份,对于同一个蒲公英的注册用户来说,这个值在固定的。点击获取_ukey pgyer api_key (必填) API Key,用来识别API调用者的身份,如不特别说明,每个接口中都需要含有此参数。对于同一个蒲公英的注册用户来说,这个值在固定的。点击获取_api_key scandir (必填) 需要上传的apk/ipa文件所在的文件夹或者父文件夹,当前默认路径是${WORKSPACE},它代表了当前项目的绝对路径。这个功能的实现使用了ant框架的DirectoryScanner类,点击查看DirectoryScanner类,这个字段就是DirectoryScanner类中的basedir方法的参数点击查看basedir方法 file wildcard (必填) 需要上传的apk/ipa文件的名字,支持通配符,就像这样: */Test?/.apk,这个功能的实现使用了ant框架的DirectoryScanner类,点击查看DirectoryScanner类,这个字段就是DirectoryScanner类中的includes方法的参数,点击查看includes方法 installType (选填) 应用安装方式,值为(1,2,3)。1:公开,2:密码安装,3:邀请安装。默认为1公开 password (选填) 设置App安装密码,如果不想设置密码,请传空字符串,或不传。 updateDescription (选填) 版本更新描述,请传空字符串,或不传。 qrcodePath (选填) 如果你需要下载蒲公英返回的二维码,那么这里填写二维码的存储路径,如果你不需要下载,那么你不需要在这里填写任何内容。 envVarsPath (选填) 如果你想存储蒲公英返回的上传信息,那么这里填写保存信息的文件路径,如果你不需要保存,那么你不需要在这里填写任何内容。 运行截图 当你的应用上传成功后,在Jenkins中你就能看到上面图片中的信息。同时,你就可以在其他构建步骤中使用蒲公英返回来的信息,例如我的经验:</description>
</item>
<item>
<title>Jenkins Upload To Pgyer</title>
<link>https://iamfan.cn/post/jenkins_upload_to_pgyer_en/</link>
<pubDate>Fri, 15 Sep 2017 10:45:51 +0000</pubDate>
<guid>https://iamfan.cn/post/jenkins_upload_to_pgyer_en/</guid>
<description>A simple introduction 中文文档
Pgyer&rsquo;s official website is https://www.pgyer.com/
Pgyer can upload the application to the site, generate installation link and qr code user to open the installation link, or scan code qr code, can start installation.
So this plugin can be uploaded to the pgyer platform!And it can put the fields returned by pgyer into an environment variable, which you can use in other build steps, You can select upload to pgyer by adding build steps or adding post-build steps.</description>
</item>
</channel>
</rss>