forked from yangyangwithgnu/hardseed
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
root
committed
Jul 17, 2014
1 parent
13264d2
commit 08453eb
Showing
135 changed files
with
17,225 additions
and
0 deletions.
There are no files selected for viewing
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
PROJECT(main) | ||
|
||
|
||
SET(SRC_LIST ../src/main.cpp | ||
../src/lib/self/Webpage.cpp | ||
../src/lib/self/TopicsListWebpage.cpp ../src/lib/self/AichengTopicsListWebpage.cpp ../src/lib/self/CaoliuTopicsListWebpage.cpp | ||
../src/lib/self/TopicWebpage.cpp ../src/lib/self/AichengTopicWebpage.cpp ../src/lib/self/CaoliuTopicWebpage.cpp | ||
../src/lib/self/SeedWebpage.cpp ../src/lib/self/JandownSeedWebpage.cpp ../src/lib/self/RmdownSeedWebpage.cpp | ||
../src/lib/self/Aicheng.cpp ../src/lib/self/Caoliu.cpp | ||
../src/lib/helper/Time.cpp ../src/lib/helper/CmdlineOption.cpp ../src/lib/helper/Misc.cpp) | ||
SET(CMAKE_EXE_LINKER_FLAGS "-lcurl -lpthread") | ||
|
||
# linux | ||
#>>>>>>>>>>>>>>>>>>>>>> | ||
|
||
## debug | ||
#SET(CMAKE_CXX_COMPILER "clang++") | ||
#SET(CMAKE_CXX_FLAGS "-std=c++11 -Werror -Weverything -Wno-documentation -Wno-disabled-macro-expansion -Wno-float-equal -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-global-constructors -Wno-exit-time-destructors -Wno-missing-prototypes -Wno-padded") | ||
#SET(CMAKE_BUILD_TYPE debug) | ||
#ADD_EXECUTABLE(main ${SRC_LIST}) | ||
|
||
# release | ||
SET(CMAKE_CXX_COMPILER "g++") | ||
SET(CMAKE_CXX_FLAGS "-std=c++11 -O3") | ||
SET(CMAKE_BUILD_TYPE release) | ||
ADD_EXECUTABLE(hardseed ${SRC_LIST}) | ||
INSTALL(PROGRAMS hardseed DESTINATION /usr/bin/) | ||
|
||
#<<<<<<<<<<<<<<<<<<<<<< | ||
|
||
|
||
## cygwin | ||
##>>>>>>>>>>>>>>>>>>>>>> | ||
|
||
#SET(CMAKE_CXX_COMPILER "clang++") | ||
#SET(CMAKE_CXX_FLAGS "-std=c++11 -O3 -s -DCYGWIN") | ||
#SET(CMAKE_BUILD_TYPE release) | ||
#ADD_EXECUTABLE(hardseed ${SRC_LIST}) | ||
#target_link_libraries(hardseed /bin/cygcurl-4.dll) | ||
#target_link_libraries(hardseed /lib/libiconv.a) | ||
|
||
##<<<<<<<<<<<<<<<<<<<<<< |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
hardseed is a batch seeds and pictures download utiltiy from CaoLiu and AiCheng forum. It's easy and simple to use. Usually, you could issue it as follow: | ||
$ hardseed | ||
or | ||
$ hardseed --saveas-path ~/downloads --multi-threads 4 --topics-range 8 64 --av-class Aicheng_west --timeout-download-picture 32 --hate X-Art --proxy http://127.0.0.1:8087 | ||
|
||
--help | ||
Show this help infomation what you are seeing. | ||
|
||
--version | ||
Show current version. | ||
|
||
--av-class | ||
There are twelve av classes: caoliu_west_reposted, caoliu_cartoon_reposted, caoliu_asia_mosaicked_reposted, caoliu_asia_non_mosaicked_reposted, caoliu_west_original, caoliu_cartoon_original, caoliu_asia_mosaicked_original, caoliu_asia_non_mosaicked_original, aicheng_west, aicheng_cartoon, aicheng_asia_mosaicked and aicheng_asia_non_mosaicked. | ||
As the name implies, "caoliu" stands for CaoLiu forum, "aicheng" for AiCheng forum, "reposted" and "original" is clearity, you konw which one is your best lover (yes, only one). | ||
The default is aicheng_asia_mosaicked. | ||
|
||
--concurrent-tasks | ||
You can set more than one proxy, each proxy could more than one concurrent tasks. This option set the number of concurrent tasks of each prox. | ||
The max and default number is 16. | ||
|
||
--timeout-download-picture | ||
Some pictures too big to download in few seconds. So, you should set the download picture timeout seconds. | ||
The default timeout is 32 seconds. | ||
|
||
--topics-range | ||
Set the range of to download topics. E.G.: | ||
--topics-range 2 16 | ||
--topics-range 8 (I.E., --topics-range 1 8) | ||
--topics-range -1 (I.E., all topics of this av class) | ||
The default topics range is 128 | ||
|
||
--saveas-path | ||
Set the path to save seeds and pictures. The rule of dir: [avclass][range]@hhmmss. E.G., [aicheng_west][2~32]@124908/. | ||
The default directory is home directory. | ||
|
||
--hate | ||
If you hate some subject topics, you can ignore them by setting this option with keywords in topic title, split by space-char ' ', and case sensitive. E.G., --hate 孕妇 重口味. When --hate keywords list conflict with --like, --hate first. | ||
|
||
--like | ||
If you like some subject topics, you can grab them by setting this option with keywords in topic title, split by space-char ' ', and case sensitive. E.G., --like 苍井空 小泽玛利亚. When --like keywords list conflict with --hate, --hate first. | ||
|
||
--proxy | ||
As you know, the government likes blocking adult websites, so, I do suggest you to set --proxy option. Hardseed supports more proxys: | ||
a) GoAgent (STRONGLY recommended), --proxy http://127.0.0.1:8087 | ||
b) shadowsocks, --proxy socks5://127.0.0.1:1080, or socks5h://127.0.0.1:1080 | ||
c) SSH, --proxy socks4://127.0.0.1:7070 | ||
d) VPN (PPTP and openVPN), --proxy "" | ||
It is important that you should know, you can set more proxys at the same time, split by space-char ' '. As the --concurrent-tasks option says, each proxy could more than one concurrent tasks, now, what about more proxys? Yes, yes, the speed of downloading seed and pictures is very very fast. E.G., --concurrent-tasks 8 --proxy http://127.0.0.1:8087 socks5://127.0.0.1:1080 socks4://127.0.0.1:7070, the number of concurrent tasks is 8*3. | ||
If you wanna how to install and configure various kinds of proxy, please access my homepage "3.3 搭梯翻墙" http://www.yangyangwithgnu.net/the_new_world_linux/#index_3_3 | ||
The default http://127.0.0.1:8087. | ||
|
||
That's all. Any suggestions let me know by yangyang.gnu@gmail.com or http://www.yangyangwithgnu.net/, big thanks to you. Kiddo, take care of your body. :-) | ||
|
||
|
||
================================================================================== | ||
|
||
硬盘女神,你懂嘀!hardseed 是个种子下载工具,它从浓(ai)情(cheng)蜜(she)意(qu)和爱(cao)意(liu)无(she)限(qu)的地方获取女神种子、图片。 | ||
|
||
【翻墙】 | ||
翻墙。你知道,这一切的一切都在墙外,所以你得具备翻墙环境,hardseed 才能正常帮你拉女神。hardseed 支持 GoAgent、shadowsocks、SSH、VPN (PPTP 和 openVPN)等各类代理模式,甚至你可以并行使用多种代理以极速下载。从普及度、稳定性、高效性来看,GoAgent 最优。“我一技术小白,工作压力大,就想看看女神轻松下,你还让我折腾代理?我恨你!”,嘚,亲,我错了。我帮你配置了一份开箱即用的 goagent,位于 hardseed/proxy/goagent/local/,linux 用户,命令行中运行 python proxy.py,windows 亲,双击运行 goagent.exe (管理员权限)。 | ||
|
||
|
||
【源码安装】 | ||
|
||
『windows』 | ||
这基本没 windows 用户什么事儿,除非你有 cygwin,否则你没法编译源码,没事,我服务很到位的,帮你弄好了,二进制执行程序位于 hardseed/bin/windows/hardseed.exe | ||
|
||
『linux』 | ||
0)唯一依赖 libcurl,请自行安装; | ||
1)代码采用 C++11 编写,gcc 版本不低于 4.7.1。 | ||
2)命令行下运行: | ||
cd hardseed/build/ | ||
cmake . | ||
make && make install | ||
|
||
【使用】 | ||
听好,运行 hardseed 前务必确保代理软件已正常运行,否则,你碰不到任何女神。 | ||
|
||
『windows』 | ||
先进入 hardseed/bin/windows/,键入 ctrl-d 将光标定位到文件管理器的地址栏中,键入 CMD 启动命令行窗口,再 CMD 中键入 | ||
hardseed.exe | ||
这时,hardseed 开始玩命儿为你下载女神图片和种子,约 1 分钟左右,在你 home 目录下会生成类似 C:\Users\Administrator\[aicheng_asia_mosaicked][1~128]@014822\ 的目录,女神们在此! | ||
|
||
『linux』 | ||
同 windows 下运行一样,全用默认命令行参数运行 | ||
hardseed | ||
执行完成后,你会看到 ~/[aicheng_asia_mosaicked][1~128]@014822/,你要的都在那儿。或者,玩点高级的 | ||
hardseed --saveas-path ~/downloads --topics-range 256 --av-class Aicheng_west | ||
其中,--saveas-path 指定存放路径为 ~/downloads/;--topics-range 指定解析的帖子范围从第 1 张帖子到第 256 张帖子;--av-class 指定女神类型为欧美。 | ||
|
||
【演示】 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
-----BEGIN CERTIFICATE----- | ||
MIIDUjCCAjoCAQAwDQYJKoZIhvcNAQEFBQAwbzEVMBMGA1UECxMMR29BZ2VudCBS | ||
b290MRAwDgYDVQQKEwdHb0FnZW50MRMwEQYDVQQDEwpHb0FnZW50IENBMREwDwYD | ||
VQQIEwhJbnRlcm5ldDELMAkGA1UEBhMCQ04xDzANBgNVBAcTBkNlcm5ldDAeFw0x | ||
MTA0MjAxNzM3MzVaFw0zMTA0MjAxNzM3MzVaMG8xFTATBgNVBAsTDEdvQWdlbnQg | ||
Um9vdDEQMA4GA1UEChMHR29BZ2VudDETMBEGA1UEAxMKR29BZ2VudCBDQTERMA8G | ||
A1UECBMISW50ZXJuZXQxCzAJBgNVBAYTAkNOMQ8wDQYDVQQHEwZDZXJuZXQwggEi | ||
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC0jV3yx3yGAHlQqzm4fbVascvT | ||
nyCdtParWBnQn5A3U9pJjI47SCo8j7FfeoYSL0mHbJ0mjafTnw+/ewb09AQIkdEl | ||
n6smojl7NOKs1Yhh0yldB6kQWiBPr/XKMBskmvcyjJEqkU6hwtibASaAZt+q5clT | ||
BJ2XRaeAaMDeDbYDchFa7MTNhoQMdQFu1UhqkJxtuVMBEs1/qPbx5O9pqy1RgAeK | ||
WvxyCzVRi2hHaTns+weZBJ6N71afyvr1etGqqtWVpjpobk1ZFBYk4xpznCbm4iqP | ||
Ar9nqdGDw1IJIdX0DyMJIJrpwOf94pAK9v6zG0jnsbMqromL18kEMXZgYSMlAgMB | ||
AAEwDQYJKoZIhvcNAQEFBQADggEBAASiRZFCcgQ8VsncB8wKG+bmN9UZhXLJYRGp | ||
m3KIUy/zG6mMWG/3TgkPn8ivNAkrk+1ul5SrRvot/Q7XWpb0/yKX0faX/512JF2G | ||
220gopqo4amj+g7SBKxzW8VhLQF6dm99eUd27JbAzi5VKXR0dMFECk2rFlA5gAR5 | ||
zzFijaXHuObMtd2S292wji79JWocA0z6WVM5Qokw4hRTsXWfXL0BJTL3i/xRrEzW | ||
sdecYFpNhaEKldjegazoqAqiAMJj7PDU1AqdprNsq+3/tAmCvn0URkas4QhkvtqS | ||
FO6OGm/PZe5GbkBpAKdfLYFfEMO17SAGHHqAsIKAFfuHYONRGSM= | ||
-----END CERTIFICATE----- | ||
-----BEGIN RSA PRIVATE KEY----- | ||
MIIEowIBAAKCAQEAtI1d8sd8hgB5UKs5uH21WrHL058gnbT2q1gZ0J+QN1PaSYyO | ||
O0gqPI+xX3qGEi9Jh2ydJo2n058Pv3sG9PQECJHRJZ+rJqI5ezTirNWIYdMpXQep | ||
EFogT6/1yjAbJJr3MoyRKpFOocLYmwEmgGbfquXJUwSdl0WngGjA3g22A3IRWuzE | ||
zYaEDHUBbtVIapCcbblTARLNf6j28eTvaastUYAHilr8cgs1UYtoR2k57PsHmQSe | ||
je9Wn8r69XrRqqrVlaY6aG5NWRQWJOMac5wm5uIqjwK/Z6nRg8NSCSHV9A8jCSCa | ||
6cDn/eKQCvb+sxtI57GzKq6Ji9fJBDF2YGEjJQIDAQABAoIBACB3n2JN/xV1tlsM | ||
P1fuuxLxD+8hGVNivEy5jgLW/q8EVCePr+/3HSlAyauas8tHV5iTrnrFVF2Yp9NO | ||
A0U/MA5+cjaqzLMozt9Z9j0QNPMqbrC89Ojs3AyYXsGZ/veJKlSbtGsMMDCkgiD1 | ||
hv/l/+iSY66bEN+n9eQAclY77vQVXLSoCMReVfbdUxU9Q1MywODGf5Kng84gTyT/ | ||
zd+xEfFHz8zbCDyw3Hd3hGJ2FxN+yFz1uI29ORb3/R7N9dZgsWf2fsfiRVPGuhAH | ||
RNlDockImB+BKeidx14sMim5p7s8heVYkBVW3SIOEReqz59b8x4QVhhZrzYWSHNq | ||
Gi0pLiECgYEA26v6b+rsxT//PznJSEhLyrg1Jo6XeWmFlwZY0KoipH6sxX/YPrDZ | ||
bOPN8KvAHtRltRLFs3L2iRaO2jltjxHGVF4FSYrf5KSExuj6/ABHxWM0YtezfDwR | ||
hU1ORg5QwVegMoOgsphS8ts2xn6T6wIwpBgtFPY84A52IBVn5CHuQtkCgYEA0mk5 | ||
EpnZfmMT5ldcZ7JlZrxfWKvDHIcuA0neIBsd4oIcEfRhDC3TolH6pB4z4SCqyYw3 | ||
t5HMiTx8yz074mycTcOcXO1Cs49kMZwbzKziRXpUdCW4EIo0DG+6LqwetPgYzozg | ||
FeTiGQBHqjrzjBLZ3RfozICbo7dvYHkVLK92my0CgYBWNBjlDnW3ujN6Jj0cxnIn | ||
rT3+UXqTxJsN9wmnaPyLPMKkBlVf1JqeJo9MYLnV31fCRQmcMAMbLOUGMf8SY9FG | ||
jlbY00ylNwJ75DWJ6ro/dXy7RRZELHZbr0iGKVv7Y12UNR88tpXmg6vtHQMC+CsK | ||
Wgpm7XJaIpKsaHoKhl4vkQKBgBBBTsZwGkxYTSZDY4EjWBAax2brRhSDIPviDgX+ | ||
8k0YbiC493Jga/QjTzC0oJ9ozajqazeETP/hK2bsIR858s1TKlZHghqrHjty6vbh | ||
+E0TyUh7zX+BncnEK+cFJw4mCIyUd49ZcloqGl89VKlin3AkM7jwypVYS4Nxd0BP | ||
geM1AoGBALOWNmYm9d4gRhUv14oJRiA+e+4evswiWvVdnS6UJ4tst0NlEKWahtpR | ||
kdAjav8WV1n6IbkJC2L743Ozjb63z5w6p5O7OtTyYUWbLt1hvNkHlkNP8AjRQP8E | ||
+N2jjrMAdbEwahPNAX9QlzHpF62AfEGQ3oODUm06TGTq+yAPSyYm | ||
-----END RSA PRIVATE KEY----- |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> | ||
<!-- Copyright (c) Microsoft Corporation. All rights reserved. --> | ||
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> | ||
<noInheritable/> | ||
<assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b" /> | ||
<file name="msvcr90.dll" /> | ||
</assembly> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
eyJjb25maWciOiJ7XCJmaXJzdFRpbWVcIjpcIjpdXCIsXCJwcm94eU1vZGVcIjpcImF1dG9cIixcImF1dG9QYWNTY3JpcHRQYXRoXCI6XCI6bWVtb3J5OlwiLFwicnVsZUxpc3RVcmxcIjpcImh0dHBzOi8vYXV0b3Byb3h5LWdmd2xpc3QuZ29vZ2xlY29kZS5jb20vc3ZuL3RydW5rL2dmd2xpc3QudHh0XCIsXCJydWxlTGlzdFJlbG9hZFwiOlwiNzIwXCIsXCJydWxlTGlzdFByb2ZpbGVJZFwiOlwiR29BZ2VudFwiLFwicnVsZUxpc3RBdXRvUHJveHlcIjp0cnVlLFwic3dpdGNoUnVsZXNcIjp0cnVlLFwicnVsZUxpc3RFbmFibGVkXCI6dHJ1ZSxcInBhY1NjcmlwdERhdGFcIjpcIlwiLFwicHJveHlTZXJ2ZXJcIjpcIlwiLFwicXVpY2tTd2l0Y2hcIjpmYWxzZSxcInF1aWNrU3dpdGNoVHlwZVwiOlwiYmluYXJ5XCIsXCJyZWFwcGx5U2VsZWN0ZWRQcm9maWxlXCI6dHJ1ZSxcImNvbmZpcm1EZWxldGlvblwiOmZhbHNlLFwicnVsZXNGaXJzdFRpbWVcIjpcIjtdXCIsXCJtb25pdG9yUHJveHlDaGFuZ2VzXCI6ZmFsc2UsXCJwcmV2ZW50UHJveHlDaGFuZ2VzXCI6ZmFsc2UsXCJsYXN0TGlzdFVwZGF0ZVwiOlwiVHVlIEFwciAxNSAyMDE0IDExOjEyOjU2IEdNVCswODAwIChDaGluYSBTdGFuZGFyZCBUaW1lKVwiLFwicmVmcmVzaFRhYlwiOmZhbHNlLFwic3RhcnR1cFByb2ZpbGVJZFwiOlwiXCIsXCJxdWlja1J1bGVQcm9maWxlSWRcIjpcIkdvQWdlbnRcIixcInF1aWNrUnVsZVBhdHRlcm5UeXBlXCI6XCJ3aWxkY2FyZFwiLFwicHJveHlDb25maWdVcmxcIjpcIjptZW1vcnk6XCJ9IiwiZGVmYXVsdFJ1bGUiOiJ7XCJpZFwiOlwiZGVmYXVsdFJ1bGVcIixcIm5hbWVcIjpcIkRlZmF1bHQgUnVsZVwiLFwidXJsUGF0dGVyblwiOlwiXCIsXCJwYXR0ZXJuVHlwZVwiOlwid2lsZGNhcmRcIixcInByb2ZpbGVJZFwiOlwiZGlyZWN0XCJ9IiwicHJvZmlsZXMiOiJ7XCJHb0FnZW50XCI6e1wibmFtZVwiOlwiR29BZ2VudFwiLFwicHJveHlNb2RlXCI6XCJtYW51YWxcIixcInByb3h5SHR0cFwiOlwiMTI3LjAuMC4xOjgwODdcIixcInVzZVNhbWVQcm94eVwiOnRydWUsXCJwcm94eUh0dHBzXCI6XCJcIixcInByb3h5RnRwXCI6XCJcIixcInByb3h5U29ja3NcIjpcIlwiLFwic29ja3NWZXJzaW9uXCI6NCxcInByb3h5RXhjZXB0aW9uc1wiOlwibG9jYWxob3N0OyAxMjcuMC4wLjE7IDxsb2NhbD5cIixcInByb3h5Q29uZmlnVXJsXCI6XCJcIixcImNvbG9yXCI6XCJibHVlXCIsXCJpZFwiOlwiR29BZ2VudFwifSxcIkdvQWdlbnQgUEhQXCI6e1wibmFtZVwiOlwiR29BZ2VudCBQQUNcIixcInByb3h5TW9kZVwiOlwiYXV0b1wiLFwicHJveHlIdHRwXCI6XCJcIixcInVzZVNhbWVQcm94eVwiOnRydWUsXCJwcm94eUh0dHBzXCI6XCJcIixcInByb3h5RnRwXCI6XCJcIixcInByb3h5U29ja3NcIjpcIlwiLFwic29ja3NWZXJzaW9uXCI6NSxcInByb3h5RXhjZXB0aW9uc1wiOlwibG9jYWxob3N0OyAxMjcuMC4wLjE7IDxsb2NhbD5cIixcInByb3h5Q29uZmlnVXJsXCI6XCJodHRwOi8vMTI3LjAuMC4xOjgwODYvcHJveHkucGFjXCIsXCJjb2xvclwiOlwiYmx1ZVwiLFwiaWRcIjpcIkdvQWdlbnQgUEhQXCJ9LFwiR29BZ2VudCBQSFAyXCI6e1wibmFtZVwiOlwiR29BZ2VudCBQSFBcIixcInByb3h5TW9kZVwiOlwibWFudWFsXCIsXCJwcm94eUh0dHBcIjpcIjEyNy4wLjAuMTo4MDg4XCIsXCJ1c2VTYW1lUHJveHlcIjp0cnVlLFwicHJveHlIdHRwc1wiOlwiXCIsXCJwcm94eUZ0cFwiOlwiXCIsXCJwcm94eVNvY2tzXCI6XCJcIixcInNvY2tzVmVyc2lvblwiOjQsXCJwcm94eUV4Y2VwdGlvbnNcIjpcImxvY2FsaG9zdDsgMTI3LjAuMC4xOyA8bG9jYWw+XCIsXCJwcm94eUNvbmZpZ1VybFwiOlwiXCIsXCJjb2xvclwiOlwiYmx1ZVwiLFwiaWRcIjpcIkdvQWdlbnQgUEhQMlwifX0iLCJxdWlja1N3aXRjaFByb2ZpbGVzIjoiW1wiZGlyZWN0XCJdIiwicnVsZXMiOiJ7XCJOZXcgUnVsZTNcIjp7XCJuYW1lXCI6XCJnb29nbGVcIixcInVybFBhdHRlcm5cIjpcIio6Ly8qLmdvb2dsZS5jb20uKi8qXCIsXCJwYXR0ZXJuVHlwZVwiOlwid2lsZGNhcmRcIixcInByb2ZpbGVJZFwiOlwiR29BZ2VudFwiLFwiaWRcIjpcIk5ldyBSdWxlM1wifSxcIk5ldyBSdWxlMlwiOntcIm5hbWVcIjpcImdvb2dsZVwiLFwidXJsUGF0dGVyblwiOlwiKjovLyouZ29vZ2xlKi5jb20vKlwiLFwicGF0dGVyblR5cGVcIjpcIndpbGRjYXJkXCIsXCJwcm9maWxlSWRcIjpcIkdvQWdlbnRcIixcImlkXCI6XCJOZXcgUnVsZTJcIn0sXCJzZlwiOntcIm5hbWVcIjpcInNvdXJjZWZvcmdlXCIsXCJ1cmxQYXR0ZXJuXCI6XCIqOi8vKi5zb3VyY2Vmb3JnZS5uZXQvKlwiLFwicGF0dGVyblR5cGVcIjpcIndpbGRjYXJkXCIsXCJwcm9maWxlSWRcIjpcIkdvQWdlbnRcIixcImlkXCI6XCJzZlwifSxcInNmMlwiOntcIm5hbWVcIjpcInNvdXJjZWZvcmdlXCIsXCJ1cmxQYXR0ZXJuXCI6XCIqOi8vKi5zZi5uZXQvKlwiLFwicGF0dGVyblR5cGVcIjpcIndpbGRjYXJkXCIsXCJwcm9maWxlSWRcIjpcIkdvQWdlbnRcIixcImlkXCI6XCJzZjJcIn0sXCJOZXcgUnVsZThcIjp7XCJuYW1lXCI6XCJ3aWtpcGVkaWFcIixcInVybFBhdHRlcm5cIjpcIio6Ly8qLndpa2lwZWRpYS5vcmcvKlwiLFwicGF0dGVyblR5cGVcIjpcIndpbGRjYXJkXCIsXCJwcm9maWxlSWRcIjpcIkdvQWdlbnRcIixcImlkXCI6XCJOZXcgUnVsZThcIn19Iiwic2VsZWN0ZWRQcm9maWxlIjoie1wiaWRcIjpcImF1dG9cIixcIm5hbWVcIjpcIltBdXRvIFN3aXRjaF1cIixcInByb3h5TW9kZVwiOlwiYXV0b1wiLFwiY29sb3JcIjpcImF1dG8tYmx1ZVwiLFwiaXNBdXRvbWF0aWNNb2RlUHJvZmlsZVwiOnRydWUsXCJwcm94eUNvbmZpZ1VybFwiOlwiOm1lbW9yeTpcIn0ifQ== |
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,125 @@ | ||
#!/usr/bin/env python | ||
# coding:utf-8 | ||
|
||
from __future__ import with_statement | ||
|
||
__version__ = '1.0' | ||
|
||
import sys | ||
import os | ||
import re | ||
import time | ||
import ctypes | ||
import platform | ||
|
||
python2 = os.popen('python2 -V 2>&1').read().startswith('Python 2.') and 'python2' or 'python' | ||
|
||
def addto_startup_linux(): | ||
filename = os.path.abspath(__file__) | ||
dirname = os.path.dirname(filename) | ||
#you can change it to 'proxy.py' if you like :) | ||
scriptname = 'goagent-gtk.py' | ||
DESKTOP_FILE = '''\ | ||
[Desktop Entry] | ||
Type=Application | ||
Categories=Network;Proxy; | ||
Exec=/usr/bin/env %s "%s/%s" | ||
Icon=%s/goagent-logo.png | ||
Hidden=false | ||
NoDisplay=false | ||
X-GNOME-Autostart-enabled=true | ||
Name=GoAgent GTK | ||
Comment=GoAgent GTK Launcher | ||
''' % (python2, dirname , scriptname , dirname) | ||
#sometimes maybe /etc/xdg/autostart , ~/.kde/Autostart/ , ~/.config/openbox/autostart | ||
for dirname in map(os.path.expanduser, ['~/.config/autostart']): | ||
if os.path.isdir(dirname): | ||
filename = os.path.join(dirname, 'goagent-gtk.desktop') | ||
with open(filename, 'w') as fp: | ||
fp.write(DESKTOP_FILE) | ||
# os.chmod(filename, 0755) | ||
|
||
|
||
def addto_startup_osx(): | ||
if os.getuid() != 0: | ||
print 'please use sudo run this script' | ||
sys.exit() | ||
import plistlib | ||
plist = dict( | ||
GroupName = 'wheel', | ||
Label = 'org.goagent.macos', | ||
ProgramArguments = list([ | ||
'/usr/bin/%s' % python2, | ||
os.path.join(os.path.abspath(os.path.dirname(__file__)), 'proxy.py') | ||
]), | ||
RunAtLoad = True, | ||
UserName = 'root', | ||
WorkingDirectory = os.path.dirname(__file__), | ||
StandardOutPath = '/var/log/goagent.log', | ||
StandardErrorPath = '/var/log/goagent.log', | ||
KeepAlive = dict( | ||
SuccessfulExit = False, | ||
) | ||
) | ||
filename = '/Library/LaunchDaemons/org.goagent.macos.plist' | ||
print 'write plist to %s' % filename | ||
plistlib.writePlist(plist, filename) | ||
print 'write plist to %s done' % filename | ||
print 'Adding CA.crt to system keychain, You may need to input your password...' | ||
cmd = 'sudo security add-trusted-cert -d -r trustRoot -k "/Library/Keychains/System.keychain" "%s/CA.crt"' % os.path.abspath(os.path.dirname(__file__)) | ||
if os.system(cmd) != 0: | ||
print 'Adding CA.crt to system keychain Failed!' | ||
sys.exit(0) | ||
print 'Adding CA.crt to system keychain Done' | ||
print 'To start goagent right now, try this command: sudo launchctl load /Library/LaunchDaemons/org.goagent.macos.plist' | ||
print 'To checkout log file: using Console.app to locate /var/log/goagent.log' | ||
|
||
install_sharp_osx() | ||
|
||
|
||
def install_sharp_osx(): | ||
# extracted from SwitchySharp.crx | ||
extension_id = 'dpplabbmogkhghncfbfdeeokoefdjegm' | ||
extension_version = '1.10.2' | ||
extension_path = '%s/SwitchySharp.crx' % os.path.abspath(os.path.dirname(__file__)) | ||
|
||
dest_path = '/Library/Application Support/Google/Chrome/External Extensions' | ||
dest_file = '%s/%s.json' % (dest_path, extension_id) | ||
print 'Installing SwitchySharp for Chrome...' | ||
cmd = 'mkdir -p "%s"' % dest_path | ||
if os.system(cmd) != 0: | ||
print 'Create Chrome External Extensions folder Failed!' | ||
sys.exit(0) | ||
|
||
json_dict = {'external_crx': extension_path, | ||
'external_version': extension_version} | ||
with open(dest_file, 'w') as fp: | ||
import json | ||
json.dump(json_dict, fp) | ||
print 'Installing SwitchySharp done.' | ||
|
||
|
||
def addto_startup_windows(): | ||
if 1 == ctypes.windll.user32.MessageBoxW(None, u'是否将goagent.exe加入到启动项?', u'GoAgent 对话框', 1): | ||
if 1 == ctypes.windll.user32.MessageBoxW(None, u'是否显示托盘区图标?', u'GoAgent 对话框', 1): | ||
pass | ||
|
||
|
||
def addto_startup_unknown(): | ||
print '*** error: Unknown system' | ||
|
||
|
||
def main(): | ||
addto_startup_funcs = { | ||
'Darwin' : addto_startup_osx, | ||
'Windows' : addto_startup_windows, | ||
'Linux' : addto_startup_linux, | ||
} | ||
addto_startup_funcs.get(platform.system(), addto_startup_unknown)() | ||
|
||
|
||
if __name__ == '__main__': | ||
try: | ||
main() | ||
except KeyboardInterrupt: | ||
pass |
Oops, something went wrong.