soonje_3 4.0.4 → 4.0.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/soonje_3.rb +174 -55
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 798086da057d3beae2742b8580bb90363286df1d55d49a1d4ff9392db54bf4c9
|
4
|
+
data.tar.gz: d6ccc5aef79fb7a700f244ce4fd5d7c91e21de6c82edc322bf63d69ec4ffd161
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: caa2b7263a7f024011598f586e2606b605b7779e3ce6968fe16d90ec278a6b06247d6ec84aac2515f033a33291ecd4ff18ca66d39b3ecf2d001168b1d5eb3bfc
|
7
|
+
data.tar.gz: 9697ae2eb43d0a99c1b82a98382feea8ae933a969d0402f206e2fa12def72fcc38a1739b16c4f86c699b0fce376a6a70e99051c7b431faef7608751a816146b1
|
data/lib/soonje_3.rb
CHANGED
@@ -12,6 +12,7 @@ require 'rest-client'
|
|
12
12
|
require 'open3'
|
13
13
|
require 'zlib'
|
14
14
|
require 'stringio'
|
15
|
+
require 'timeout'
|
15
16
|
|
16
17
|
class Wordpress
|
17
18
|
include Glimmer
|
@@ -28,12 +29,12 @@ class Wordpress
|
|
28
29
|
c = noko.xpath('//*[@id="at-main"]/div/table/tbody').to_s.split('<tr>').length-1
|
29
30
|
for n in 1..c
|
30
31
|
tt = noko.xpath('//*[@id="at-main"]/div/table/tbody/tr['+n.to_s+']').to_s
|
31
|
-
if tt.include?(user_id.to_s) and tt.include?('
|
32
|
+
if tt.include?(user_id.to_s) and tt.include?('백링크 등록 프로그램')
|
32
33
|
if noko.xpath('//*[@id="at-main"]/div/table/tbody/tr['+n.to_s+']/td[7]/label[1]/input').to_s.include?('checked')
|
33
34
|
if mac_check(user_id) == 1
|
34
35
|
return 1
|
35
36
|
else
|
36
|
-
return
|
37
|
+
return 1
|
37
38
|
end
|
38
39
|
else
|
39
40
|
return 22
|
@@ -56,7 +57,7 @@ class Wordpress
|
|
56
57
|
cookie[i.to_s.split('=')[0]] = i.to_s.split('=')[1]
|
57
58
|
end
|
58
59
|
|
59
|
-
http = HTTP.cookies(cookie).get('http://marketingduo.co.kr/bbs/board.php?bo_table=product&sca=&sfl=wr_subject&sop=and&stx='+userid+'
|
60
|
+
http = HTTP.cookies(cookie).get('http://marketingduo.co.kr/bbs/board.php?bo_table=product&sca=&sfl=wr_subject&sop=and&stx='+userid+'--백링크 등록 프로그램')
|
60
61
|
noko = Nokogiri::HTML(http.to_s)
|
61
62
|
mac_history = Array.new
|
62
63
|
mac_url = Array.new
|
@@ -80,9 +81,13 @@ class Wordpress
|
|
80
81
|
end
|
81
82
|
|
82
83
|
mac_address, stderr, status = Open3.capture3('getmac /v')
|
83
|
-
|
84
|
-
|
85
|
-
|
84
|
+
begin
|
85
|
+
mac_address = mac_address.force_encoding('cp949').encode('utf-8')
|
86
|
+
mac_address = mac_address.split("\n").join('').split(' ').join
|
87
|
+
puts mac_address
|
88
|
+
rescue
|
89
|
+
|
90
|
+
end
|
86
91
|
if mac_history.length >= 5
|
87
92
|
puts '최대 5대 기기 사용가능 로그인실패'
|
88
93
|
return 3
|
@@ -98,7 +103,7 @@ class Wordpress
|
|
98
103
|
year2 = Time.now.to_s.split(' ')[1].split(':').join('')
|
99
104
|
uid = year+year2
|
100
105
|
puts uid
|
101
|
-
json = {'token' => token, 'uid' => uid, 'bo_table' => 'product', 'wr_id' => '0', 'wr_subject' => userid+'
|
106
|
+
json = {'token' => token, 'uid' => uid, 'bo_table' => 'product', 'wr_id' => '0', 'wr_subject' => userid+'--백링크 등록 프로그램', 'wr_content' => mac_address}
|
102
107
|
http = HTTP.cookies(cookie).post('http://marketingduo.co.kr/bbs/write_update.php', :form => json)
|
103
108
|
return 1
|
104
109
|
end
|
@@ -136,50 +141,77 @@ class Wordpress
|
|
136
141
|
@url = url
|
137
142
|
@user_id = user_id
|
138
143
|
@user_pw = user_pw
|
139
|
-
@driver = Selenium::WebDriver.for :chrome
|
140
144
|
end
|
141
145
|
|
142
|
-
def
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
146
|
+
def url_check22(url)
|
147
|
+
http = HTTP.get(url+'/sign-in')
|
148
|
+
if http.to_s.length == 0
|
149
|
+
return 0
|
150
|
+
else
|
151
|
+
return 1
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
def word2_login(url, user_id, user_pw)
|
156
|
+
session_id = ''
|
157
|
+
if url_check22(url) == 1
|
158
|
+
http = HTTP.post(url+'/sign-in', :form=>{'username' => user_id,'password'=> user_pw ,'sent'=>'1','login'=>'1'})
|
159
|
+
http.cookies.each do |i|
|
160
|
+
puts i
|
161
|
+
end
|
162
|
+
begin
|
163
|
+
session_id = http.to_s.split('session_id", "')[1].split('"')[0]
|
164
|
+
rescue
|
165
|
+
session_id = ''
|
166
|
+
end
|
167
|
+
|
168
|
+
puts session_id
|
169
|
+
else
|
170
|
+
http = HTTP.post(url+'/login', :form=>{'error'=>0,'jsession'=>'abcd','username'=>user_id,'password'=>user_pw,'login'=>'Log In'})
|
152
171
|
begin
|
153
|
-
|
172
|
+
session_id = http.to_s.split("session_id','")[1].split("'")[0]
|
154
173
|
rescue
|
155
|
-
|
174
|
+
session_id = ''
|
156
175
|
end
|
176
|
+
|
177
|
+
puts session_id
|
178
|
+
|
179
|
+
if session_id == ''
|
180
|
+
http = HTTP.post(url+'/login', :form=>{'usr'=>user_id,'pass'=>user_pw,'rememberme'=>'on','login'=>'Log In'})
|
181
|
+
begin
|
182
|
+
session_id = http.to_s.split("session_id','")[1].split("'")[0]
|
183
|
+
rescue
|
184
|
+
session_id = ''
|
185
|
+
end
|
186
|
+
puts session_id
|
187
|
+
puts 'final ...'
|
188
|
+
end
|
189
|
+
end
|
190
|
+
|
191
|
+
return session_id
|
192
|
+
end
|
193
|
+
|
194
|
+
def login
|
195
|
+
begin
|
196
|
+
session_id22 = word2_login(@url,@user_id,@user_pw)
|
157
197
|
|
158
198
|
@cookie = Hash.new
|
159
|
-
@
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
puts hihi = @driver.find_element(:xpath , '//*[@id="wp-admin-bar-my-account"]/a').text
|
164
|
-
if hihi.to_s == ''
|
165
|
-
@driver.close
|
166
|
-
return 0
|
167
|
-
else
|
168
|
-
@driver.close
|
169
|
-
return 1
|
170
|
-
end
|
171
|
-
rescue
|
172
|
-
@driver.close
|
199
|
+
@cookie['session_id'] = session_id22
|
200
|
+
|
201
|
+
if session_id22 == ''
|
202
|
+
puts '로그인실패...'
|
173
203
|
return 0
|
204
|
+
else
|
205
|
+
puts '로그인성공...'
|
206
|
+
return 1
|
174
207
|
end
|
175
208
|
rescue
|
176
|
-
@driver.close
|
177
209
|
return 0
|
178
210
|
end
|
179
211
|
end
|
180
212
|
|
181
213
|
def update
|
182
|
-
http = HTTP.cookies(@cookie).get(@url+'/
|
214
|
+
http = HTTP.cookies(@cookie).get(@url+'/new-post')
|
183
215
|
noko = Nokogiri::HTML(http.to_s)
|
184
216
|
@http_error_check = false
|
185
217
|
begin
|
@@ -541,24 +573,39 @@ class Wordpress
|
|
541
573
|
while true
|
542
574
|
check_success = 0
|
543
575
|
@data['table'].each_with_index do |table,index|
|
576
|
+
status_timeout = Timeout::timeout(180) do
|
544
577
|
begin
|
545
|
-
|
546
|
-
|
547
|
-
|
578
|
+
if black_users.include?(table[2].to_s)
|
579
|
+
next
|
580
|
+
end
|
548
581
|
if table[4].to_i > table[6].to_i
|
549
582
|
if @data['포스트설정']['테더링'].checked?
|
550
583
|
puts 'tedering ip change...'
|
551
|
-
stdout, stderr, status = Open3.capture3('adb devices')
|
584
|
+
stdout, stderr, status = Open3.capture3('./adb devices')
|
552
585
|
if status.success?
|
553
586
|
device_id = stdout.split("\n")[1].split("\t")[0]
|
554
587
|
puts device_id
|
555
588
|
puts 'adb -s '+device_id+' shell svc data disable'
|
556
|
-
stdout2, stderr2, status2 = Open3.capture3('adb -s '+device_id+' shell svc data disable')
|
589
|
+
stdout2, stderr2, status2 = Open3.capture3('./adb -s '+device_id+' shell svc data disable')
|
557
590
|
sleep(3)
|
558
591
|
puts 'adb -s '+device_id+' shell svc data enable'
|
559
|
-
Open3.capture3('adb -s '+device_id+' shell svc data enable')
|
592
|
+
Open3.capture3('./adb -s '+device_id+' shell svc data enable')
|
560
593
|
sleep(3)
|
561
594
|
puts 'adb ok'
|
595
|
+
sleep(8)
|
596
|
+
robot_ip = lambda do
|
597
|
+
http = HTTP.get('https://www.findip.kr/')
|
598
|
+
noko = Nokogiri::HTML(http.to_s)
|
599
|
+
if noko.xpath('/html/body/header/h2').text != @my_ip
|
600
|
+
@my_ip = noko.xpath('/html/body/header/h2').text
|
601
|
+
else
|
602
|
+
puts @my_ip
|
603
|
+
puts '제시도...'
|
604
|
+
sleep(3)
|
605
|
+
robot_ip[]
|
606
|
+
end
|
607
|
+
end
|
608
|
+
robot_ip[]
|
562
609
|
else
|
563
610
|
puts 'adb error pass'
|
564
611
|
end
|
@@ -633,7 +680,7 @@ class Wordpress
|
|
633
680
|
@data['table'].pop
|
634
681
|
login_check = login()
|
635
682
|
if login_check == 0
|
636
|
-
black_users << table[
|
683
|
+
black_users << table[2].to_s
|
637
684
|
next
|
638
685
|
end
|
639
686
|
|
@@ -733,6 +780,21 @@ class Wordpress
|
|
733
780
|
|
734
781
|
puts title
|
735
782
|
end
|
783
|
+
|
784
|
+
title = title.split(' ').join(' ')
|
785
|
+
|
786
|
+
change_memory = Hash.new
|
787
|
+
@data['포스트설정']['내용자동변경값'].each do |key,v|
|
788
|
+
change_memory[key] = v.sample
|
789
|
+
end
|
790
|
+
|
791
|
+
if @data['포스트설정']['제목에도적용'].checked?
|
792
|
+
@data['포스트설정']['내용자동변경값'].each do |key,v|
|
793
|
+
title = title.split(key).join(change_memory[key])
|
794
|
+
end
|
795
|
+
end
|
796
|
+
|
797
|
+
|
736
798
|
@data['table'][index][7] = 40
|
737
799
|
@data['table'] << []
|
738
800
|
@data['table'].pop
|
@@ -939,7 +1001,7 @@ class Wordpress
|
|
939
1001
|
if @data['포스트설정']['내용자동변경'].checked?
|
940
1002
|
puts '내용자동변경...'
|
941
1003
|
@data['포스트설정']['내용자동변경값'].each do |key,v|
|
942
|
-
content = content.split(key).join(
|
1004
|
+
content = content.split(key).join(change_memory[key])
|
943
1005
|
end
|
944
1006
|
end
|
945
1007
|
|
@@ -1149,19 +1211,27 @@ class Wordpress
|
|
1149
1211
|
@data2['post_title'] = title
|
1150
1212
|
@data2['content'] = content
|
1151
1213
|
if @http_error_check
|
1152
|
-
result_http = HTTP.headers(@h2).post(@url+'/
|
1214
|
+
result_http = HTTP.headers(@h2).post(@url+'/new-post', :form => @data2)
|
1215
|
+
puts result_http.to_s
|
1216
|
+
puts '111'
|
1153
1217
|
else
|
1154
1218
|
if @data['포스트설정']['프록시'].checked?
|
1155
1219
|
begin
|
1156
1220
|
proxy_ip = @data['포스트설정']['프록시리스트'].sample
|
1157
|
-
result_http = HTTP.via(proxy_ip.split(':')[0], proxy_ip.split(':')[1].to_i).cookies(@cookie).post(@url+'/
|
1221
|
+
result_http = HTTP.via(proxy_ip.split(':')[0], proxy_ip.split(':')[1].to_i).cookies(@cookie).post(@url+'/new-post', :form => @data2)
|
1158
1222
|
rescue => exception
|
1159
1223
|
puts exception
|
1160
1224
|
puts proxy_ip.to_s+' proxy error 프록시 없이 업로드'
|
1161
|
-
result_http = HTTP.cookies(@cookie).post(@url+'/
|
1225
|
+
result_http = HTTP.cookies(@cookie).post(@url+'/new-post', :form => @data2)
|
1162
1226
|
end
|
1163
1227
|
else
|
1164
|
-
result_http = HTTP.cookies(@cookie).post(@url+'/
|
1228
|
+
result_http = HTTP.cookies(@cookie).post(@url+'/new-post', :form => @data2)
|
1229
|
+
if result_http.to_s.include?('<title>302 Found</title>')
|
1230
|
+
result_http = HTTP.headers(@h2).post(@url+'/new-post', :form => @data2)
|
1231
|
+
puts '302'
|
1232
|
+
end
|
1233
|
+
puts result_http.to_s
|
1234
|
+
puts '123'
|
1165
1235
|
end
|
1166
1236
|
end
|
1167
1237
|
#완료했으니 수량 카운터
|
@@ -1180,6 +1250,7 @@ class Wordpress
|
|
1180
1250
|
|
1181
1251
|
end
|
1182
1252
|
end
|
1253
|
+
end
|
1183
1254
|
end
|
1184
1255
|
|
1185
1256
|
if check_success == 0
|
@@ -1187,10 +1258,14 @@ class Wordpress
|
|
1187
1258
|
end
|
1188
1259
|
end
|
1189
1260
|
|
1190
|
-
|
1191
|
-
@
|
1192
|
-
|
1193
|
-
|
1261
|
+
begin
|
1262
|
+
if @data['무한반복'].checked? == false
|
1263
|
+
@start = 0
|
1264
|
+
msg_box('작업 완료')
|
1265
|
+
break
|
1266
|
+
end
|
1267
|
+
rescue
|
1268
|
+
puts '문한반복 구문 오류 ...'
|
1194
1269
|
end
|
1195
1270
|
end
|
1196
1271
|
end
|
@@ -1217,8 +1292,8 @@ class Wordpress
|
|
1217
1292
|
@data['포스트설정']['내용자동변경값'] = Hash.new
|
1218
1293
|
@data['포스트설정']['막글'] = ''
|
1219
1294
|
@data['포스트설정']['프록시리스트'] = Array.new
|
1220
|
-
@user_login_ok =
|
1221
|
-
window('
|
1295
|
+
@user_login_ok = 0
|
1296
|
+
window('백링크 프로그램', 800, 540) {
|
1222
1297
|
margined true
|
1223
1298
|
|
1224
1299
|
vertical_box {
|
@@ -1534,7 +1609,7 @@ class Wordpress
|
|
1534
1609
|
checkbox_column('선택'){
|
1535
1610
|
editable true
|
1536
1611
|
}
|
1537
|
-
text_column('
|
1612
|
+
text_column('사이트리스트'){
|
1538
1613
|
|
1539
1614
|
}
|
1540
1615
|
text_column('id'){
|
@@ -1836,6 +1911,30 @@ class Wordpress
|
|
1836
1911
|
|
1837
1912
|
cell_rows @data['내용설정']['내용']
|
1838
1913
|
}
|
1914
|
+
|
1915
|
+
horizontal_box{
|
1916
|
+
stretchy false
|
1917
|
+
@data['이미지설정']['폴더경로2'] = entry{
|
1918
|
+
stretchy false
|
1919
|
+
text "내용폴더경로 ex)C:\\내용\\폴더1"
|
1920
|
+
}
|
1921
|
+
button('폴더째로불러오기'){
|
1922
|
+
stretchy false
|
1923
|
+
on_clicked{
|
1924
|
+
path = @data['이미지설정']['폴더경로2'].text.to_s.force_encoding('utf-8').force_encoding('utf-8')
|
1925
|
+
Dir.entries(@data['이미지설정']['폴더경로2'].text.to_s.force_encoding('utf-8')).each do |file|
|
1926
|
+
if file == '.' or file == '..'
|
1927
|
+
|
1928
|
+
else
|
1929
|
+
file_data = File.open(path+'/'+file,'r', :encoding => 'utf-8').read()
|
1930
|
+
@data['내용설정']['내용'] << [false, file, file_data]
|
1931
|
+
end
|
1932
|
+
end
|
1933
|
+
@data['내용설정']['내용'] << []
|
1934
|
+
@data['내용설정']['내용'].pop
|
1935
|
+
}
|
1936
|
+
}
|
1937
|
+
}
|
1839
1938
|
|
1840
1939
|
}
|
1841
1940
|
|
@@ -1888,6 +1987,7 @@ class Wordpress
|
|
1888
1987
|
}
|
1889
1988
|
}
|
1890
1989
|
@data['이미지설정']['순서사용'] = checkbox('순서사용'){
|
1990
|
+
enabled false
|
1891
1991
|
stretchy false
|
1892
1992
|
on_toggled{ |c|
|
1893
1993
|
if c.checked?
|
@@ -1896,6 +1996,7 @@ class Wordpress
|
|
1896
1996
|
}
|
1897
1997
|
}
|
1898
1998
|
@data['이미지설정']['랜덤사용'] = checkbox('랜덤사용'){
|
1999
|
+
enabled false
|
1899
2000
|
stretchy false
|
1900
2001
|
on_toggled{ |c|
|
1901
2002
|
if c.checked?
|
@@ -1946,6 +2047,7 @@ class Wordpress
|
|
1946
2047
|
horizontal_box{
|
1947
2048
|
stretchy false
|
1948
2049
|
@data['image_type'][0] = checkbox('저장 사진 사용'){
|
2050
|
+
enabled false
|
1949
2051
|
on_toggled{
|
1950
2052
|
if @data['image_type'][0].checked?
|
1951
2053
|
@data['image_type'][1].checked = false
|
@@ -1954,6 +2056,7 @@ class Wordpress
|
|
1954
2056
|
}
|
1955
2057
|
}
|
1956
2058
|
@data['image_type'][1] = checkbox('색상 사진 사용'){
|
2059
|
+
enabled false
|
1957
2060
|
on_toggled{
|
1958
2061
|
if @data['image_type'][1].checked?
|
1959
2062
|
@data['image_type'][0].checked = false
|
@@ -1962,6 +2065,7 @@ class Wordpress
|
|
1962
2065
|
}
|
1963
2066
|
}
|
1964
2067
|
@data['image_type'][2] = checkbox('자동 다운로드 사진 사용'){
|
2068
|
+
enabled false
|
1965
2069
|
on_toggled{
|
1966
2070
|
if @data['image_type'][2].checked?
|
1967
2071
|
@data['image_type'][1].checked = false
|
@@ -1974,6 +2078,7 @@ class Wordpress
|
|
1974
2078
|
grid{
|
1975
2079
|
stretchy false
|
1976
2080
|
@data['이미지설정']['글자삽입1'] = checkbox('글자 삽입1'){
|
2081
|
+
enabled false
|
1977
2082
|
top 0
|
1978
2083
|
left 0
|
1979
2084
|
}
|
@@ -2005,11 +2110,13 @@ class Wordpress
|
|
2005
2110
|
left 5
|
2006
2111
|
}
|
2007
2112
|
@data['이미지설정']['글자테두리'] = checkbox('글자 테두리'){
|
2113
|
+
enabled false
|
2008
2114
|
top 0
|
2009
2115
|
left 6
|
2010
2116
|
}
|
2011
2117
|
|
2012
2118
|
@data['이미지설정']['글자삽입2'] = checkbox('글자 삽입2'){
|
2119
|
+
enabled false
|
2013
2120
|
top 1
|
2014
2121
|
left 0
|
2015
2122
|
}
|
@@ -2041,6 +2148,7 @@ class Wordpress
|
|
2041
2148
|
left 5
|
2042
2149
|
}
|
2043
2150
|
@data['이미지설정']['글자그림자'] = checkbox('글자 그림자'){
|
2151
|
+
enabled false
|
2044
2152
|
top 1
|
2045
2153
|
left 6
|
2046
2154
|
}
|
@@ -2049,6 +2157,7 @@ class Wordpress
|
|
2049
2157
|
left 0
|
2050
2158
|
}
|
2051
2159
|
@data['이미지설정']['테두리사용'] = checkbox('테두리 사용'){
|
2160
|
+
enabled false
|
2052
2161
|
top 3
|
2053
2162
|
left 0
|
2054
2163
|
}
|
@@ -2293,9 +2402,16 @@ class Wordpress
|
|
2293
2402
|
end
|
2294
2403
|
}
|
2295
2404
|
}
|
2405
|
+
|
2406
|
+
@data['포스트설정']['제목에도적용'] = checkbox('제목에도 적용'){
|
2407
|
+
top 12
|
2408
|
+
left 3
|
2409
|
+
}
|
2410
|
+
|
2296
2411
|
@data['포스트설정']['내용사진자동삽입'] = checkbox('내용 사진 자동 삽입'){
|
2297
2412
|
top 13
|
2298
2413
|
left 0
|
2414
|
+
enabled false
|
2299
2415
|
}
|
2300
2416
|
@data['포스트설정']['내용사진자동삽입시작숫자'] = entry(){
|
2301
2417
|
top 13
|
@@ -2323,6 +2439,7 @@ class Wordpress
|
|
2323
2439
|
@data['포스트설정']['내용사진링크'] = checkbox('내용 사진 삽입시 링크 삽입'){
|
2324
2440
|
top 0
|
2325
2441
|
left 0
|
2442
|
+
enabled false
|
2326
2443
|
}
|
2327
2444
|
@data['포스트설정']['내용사진링크값'] = entry(){
|
2328
2445
|
top 0
|
@@ -2373,6 +2490,7 @@ class Wordpress
|
|
2373
2490
|
@data['포스트설정']['단어사진으로변경'] = checkbox('내용 특정단어를 사진으로 변경'){
|
2374
2491
|
top 5
|
2375
2492
|
left 0
|
2493
|
+
enabled false
|
2376
2494
|
}
|
2377
2495
|
@data['포스트설정']['단어사진으로변경단어'] = entry{
|
2378
2496
|
top 5
|
@@ -2462,6 +2580,7 @@ class Wordpress
|
|
2462
2580
|
@data['포스트설정']['특성이미지사용'] = checkbox('특성이미지사용'){
|
2463
2581
|
top 8
|
2464
2582
|
left 0
|
2583
|
+
enabled false
|
2465
2584
|
}
|
2466
2585
|
@data['포스트설정']['태그삽입1'] = checkbox('태그삽입 1 (일반 방식의 태그 형식)'){
|
2467
2586
|
top 9
|