tg_send_zon 0.0.2 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/tg_send_zon.rb +97 -39
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ecc986791e229ed38c94fe2c59d53c5694ab765fdfd3dd2f048ee8aa74a5b829
4
- data.tar.gz: e6f5c5fd5610306a4b9df6442eb5917b14c45534846961a3542cda6c4a277363
3
+ metadata.gz: d111c3d8737a5214b473a32ce25a7aff58e65c5c49d2beeb574ff0e3e3b5cf81
4
+ data.tar.gz: 402f2093680a727052ff1ac6cd6e6a2d8c0af28ac29c47b73e9396d660ef98a6
5
5
  SHA512:
6
- metadata.gz: 868324a6b0d36fd844a529faf6e1f22d42f91178fe662fd92184799ffaabebf8637c72550e2b164d5ab0a602ac1f3360fc87e7e4618727ceff46d0ca64850eaf
7
- data.tar.gz: 9b72108eb9b06d46b6a37071ee18fe71c1d00528a09e1f41d8e4feac099c9f8054a8dba157511efa8e5e34f3c4809ff18e302bdab0e9559c7ad5a343c378f432
6
+ metadata.gz: eb71714d5af464f7f18e1328d90bff68d5e4d00cbc888292b2cfe91513dfa8ea43633005c9c5120a2868d34a0c440ce8a232e64fcaa75a25fafed421bf5b66fb
7
+ data.tar.gz: ed6020168a7a90a678c21245460c61e1a958705712f7e2da9f97a4c320ddb43433488b6858774e50275ce0f2bff1d82922a19794c1f288748a68b917f2cdf40c
data/lib/tg_send_zon.rb CHANGED
@@ -1,16 +1,37 @@
1
+ #require 'glimmer-dsl-libui'
2
+ #require 'selenium-webdriver'
3
+ #require 'nokogiri'
4
+ #require 'http'
5
+ #require 'json'
6
+ #require 'crack'
7
+ #require 'fileutils'
8
+ #require 'clipboard'
9
+ #require 'auto_click'
10
+ #require 'rainbow/refinement'
11
+ #include AutoClickMethods
12
+ #using Rainbow
1
13
  require 'glimmer-dsl-libui'
2
14
  require 'selenium-webdriver'
15
+ # require 'webdrivers'
16
+ require 'iconv'
3
17
  require 'nokogiri'
4
18
  require 'http'
5
19
  require 'json'
6
- require 'crack'
20
+ require 'down'
21
+ require 'rmagick'
7
22
  require 'fileutils'
23
+ require 'rest-client'
24
+ require 'open3'
8
25
  require 'clipboard'
26
+ require 'crack'
27
+ require 'uri'
28
+ require 'cgi'
29
+ require 'digest'
9
30
  require 'auto_click'
10
31
  require 'rainbow/refinement'
11
32
  include AutoClickMethods
12
33
  using Rainbow
13
-
34
+ include Glimmer
14
35
 
15
36
 
16
37
  class Naver
@@ -224,7 +245,7 @@ class Naver
224
245
 
225
246
 
226
247
 
227
- def update(telegram_number,url,content,images,nomber,option)
248
+ def update(telegram_number,url,content,image,nomber,option)
228
249
 
229
250
  @nomber = nomber
230
251
 
@@ -245,7 +266,7 @@ class Naver
245
266
 
246
267
 
247
268
 
248
- ################################################################################ 프로그램에 설정한 이미지랑 글까지 등록
269
+ ################################################################################ 프로그램에 설정한 글만 등록
249
270
  if option['세팅내용발송1'] == 'true'
250
271
 
251
272
  wait = Selenium::WebDriver::Wait.new(:timeout => 5)
@@ -258,15 +279,15 @@ class Naver
258
279
  @url = url
259
280
  Clipboard.copy(url)
260
281
  @driver.action.key_down(:control).send_keys('v').key_up(:control).perform
261
- sleep(3)
262
- @driver.action.key_down(:enter).key_up(:enter).perform #엔터
263
-
282
+ sleep(1)
283
+
264
284
 
265
285
  #################### 예외 1 ######################
266
286
  begin
267
- wait = Selenium::WebDriver::Wait.new(:timeout => 1.5)
287
+ wait = Selenium::WebDriver::Wait.new(:timeout => 3)
268
288
  #요소가 나타날 때까지 3초 동안 기다립니다.
269
289
  wait.until { @driver.find_element(:xpath, '//*[@class="search-section"]') }
290
+ sleep(1)
270
291
  rescue
271
292
  puts "#{url} [발송 실패 !! 그룹이 존재하지 않습니다!!]".red
272
293
  @driver.close
@@ -280,6 +301,8 @@ class Naver
280
301
  end
281
302
  #################### 예외 1 ######################
282
303
 
304
+ @driver.action.key_down(:enter).key_up(:enter).perform #엔터
305
+ #sleep(1)
283
306
 
284
307
  ########### 그룹 정보 가 나와있으면 닫기 ###########
285
308
  begin
@@ -288,6 +311,7 @@ class Naver
288
311
  wait.until { @driver.find_element(:xpath, '//*[@title="Close"]') }
289
312
  sleep(1)
290
313
  @driver.find_element(:xpath, '//*[@title="Close"]').click
314
+ sleep(1)
291
315
  rescue
292
316
  end
293
317
  ########### 그룹 정보 가 나와있으면 닫기 ###########
@@ -299,6 +323,7 @@ class Naver
299
323
  #요소가 나타날 때까지 3초 동안 기다립니다.
300
324
  wait.until { @driver.find_element(:xpath, '//*[@id="editable-message-text"]') }
301
325
  @driver.find_element(:xpath, '//*[@id="editable-message-text"]').click
326
+ sleep(1)
302
327
  rescue
303
328
  puts "#{url} [발송 실패 !! 그룹에 가입되지 않았거나 발송 권한이 없습니다!!]".red
304
329
  @driver.close
@@ -315,12 +340,14 @@ class Naver
315
340
 
316
341
 
317
342
  ################### 내용 입력 ####################
318
- #@driver.find_element(:xpath, '//*[@id="editable-message-text"]').clear
319
- @driver.execute_script("document.getElementById('editable-message-text-modal').innerText = ''") #내용삭제
343
+ @driver.execute_script("document.getElementById('editable-message-text').innerText = ''") #기존 내용 이력이 있으면 삭제
344
+ sleep(1)
345
+
320
346
  sleep(1)
321
347
  @content = content
322
348
  Clipboard.copy(content)
323
349
  @driver.action.key_down(:control).send_keys('v').key_up(:control).perform #새로넣은 코드 (내용 한번에 복붙방식)
350
+ sleep(1)
324
351
  ################### 내용 입력 ####################
325
352
 
326
353
 
@@ -406,15 +433,14 @@ class Naver
406
433
  @url = url
407
434
  Clipboard.copy(url)
408
435
  @driver.action.key_down(:control).send_keys('v').key_up(:control).perform
409
- sleep(3)
410
- @driver.action.key_down(:enter).key_up(:enter).perform #엔터
411
-
412
-
436
+ sleep(1)
437
+
413
438
  #################### 예외 1 ######################
414
439
  begin
415
- wait = Selenium::WebDriver::Wait.new(:timeout => 1.5)
440
+ wait = Selenium::WebDriver::Wait.new(:timeout => 3)
416
441
  #요소가 나타날 때까지 3초 동안 기다립니다.
417
442
  wait.until { @driver.find_element(:xpath, '//*[@class="search-section"]') }
443
+ sleep(1)
418
444
  rescue
419
445
  puts "#{url} [발송 실패 !! 그룹이 존재하지 않습니다!!]".red
420
446
  @driver.close
@@ -427,8 +453,9 @@ class Naver
427
453
  return 0
428
454
  end
429
455
  #################### 예외 1 ######################
430
-
431
-
456
+ @driver.action.key_down(:enter).key_up(:enter).perform #엔터
457
+ #sleep(1)
458
+
432
459
  ########### 그룹 정보 가 나와있으면 닫기 ###########
433
460
  begin
434
461
  wait = Selenium::WebDriver::Wait.new(:timeout => 1.5)
@@ -436,17 +463,21 @@ class Naver
436
463
  wait.until { @driver.find_element(:xpath, '//*[@title="Close"]') }
437
464
  sleep(1)
438
465
  @driver.find_element(:xpath, '//*[@title="Close"]').click
466
+ sleep(1)
439
467
  rescue
440
468
  end
441
469
  ########### 그룹 정보 가 나와있으면 닫기 ###########
442
470
 
443
-
471
+ @driver.execute_script("document.getElementById('editable-message-text').innerText = ''") #기존 내용 이력이 있으면 삭제
472
+ sleep(1)
473
+
444
474
  #################### 예외 2 ######################
445
475
  begin
446
476
  wait = Selenium::WebDriver::Wait.new(:timeout => 1)
447
477
  #요소가 나타날 때까지 3초 동안 기다립니다.
448
478
  wait.until { @driver.find_element(:xpath, '//*[@id="attach-menu-button"]') }
449
479
  @driver.find_element(:xpath, '//*[@id="attach-menu-button"]').click
480
+ sleep(1)
450
481
  rescue
451
482
  #puts url + ' [그룹에 가입되지 않았거나 발송 권한이 없습니다]'.red
452
483
  puts "#{url} [발송 실패 !! 그룹에 가입되지 않았거나 발송 권한이 없습니다!!]".red
@@ -461,34 +492,52 @@ class Naver
461
492
  return 0
462
493
  end
463
494
  #################### 예외 2 ######################
464
-
495
+
465
496
 
466
497
  ################### 사진 입력 ####################
498
+ begin
467
499
  wait = Selenium::WebDriver::Wait.new(:timeout => 5)
468
500
  #요소가 나타날 때까지 3초 동안 기다립니다.
469
501
  wait.until { @driver.find_element(:xpath, '//*[@class="icon icon-photo"]') }
470
502
  @driver.find_element(:xpath, '//*[@class="icon icon-photo"]').click
471
503
  sleep(1)
472
- @images = images
473
- Clipboard.copy(images) # 이미지 폴더에서 이미지 선택
504
+ @image = image
505
+ Clipboard.copy(image)
506
+ # 이미지 폴더에서 이미지 선택
507
+ sleep(0.5)
474
508
  key_down('ctrl')
475
509
  key_stroke('v')
476
510
  key_up('ctrl')
511
+ sleep(0.5)
477
512
  key_stroke('enter')
478
513
  sleep(1.5)
514
+
479
515
  ################### 사진 입력 ####################
480
516
 
481
-
517
+
482
518
  ################### 내용 입력 ####################
483
519
  @driver.execute_script("document.getElementById('editable-message-text-modal').innerText = ''")
520
+
521
+
484
522
  sleep(1)
485
523
  @content = content
486
524
  Clipboard.copy(content)
487
525
  @driver.action.key_down(:control).send_keys('v').key_up(:control).perform #새로넣은 코드 (내용 한번에 복붙방식)
488
526
  sleep(1)
489
527
  ################### 내용 입력 ####################
490
-
491
-
528
+ rescue
529
+ # 이미지 발송 금지 된 방 예외 처리
530
+ puts "#{url} [해당 방은 이미지 발송이 금지된 방으로 메세지만 발송합니다.]".magenta
531
+ @driver.execute_script("document.getElementById('editable-message-text').innerText = ''")
532
+ sleep(1)
533
+ @driver.find_element(:xpath, '//*[@id="editable-message-text"]').click
534
+ sleep(1)
535
+ @content = content
536
+ Clipboard.copy(content)
537
+ @driver.action.key_down(:control).send_keys('v').key_up(:control).perform #새로넣은 코드 (내용 한번에 복붙방식)
538
+ sleep(1)
539
+ end
540
+
492
541
  ################### 회차 옵션 ####################
493
542
  if option['발송횟수추가'] == 'true'
494
543
  puts '회수 추가.......'.green
@@ -501,7 +550,7 @@ class Naver
501
550
  else
502
551
  end
503
552
  ################### 회차 옵션 ####################
504
-
553
+
505
554
 
506
555
  ################### 발송 엔터 ####################
507
556
  @driver.action.key_down(:enter).key_up(:enter).perform
@@ -682,19 +731,29 @@ class Wordpress
682
731
 
683
732
 
684
733
  @data['table'][index][-1] = 0
734
+
735
+
685
736
  if @data['이미지설정']['이미지'].length == 0
686
- images = ''
687
- else
737
+ image = '' # 이미지가 없으면 빈 문자열을 할당
738
+ else
688
739
  if @data['이미지설정']['랜덤사용'].checked?
689
- images = @data['이미지설정']['이미지'].sample[1]
740
+ image = @data['이미지설정']['이미지'].sample[1] # 랜덤으로 이미지 선택
690
741
  else
691
- images = @data['이미지설정']['이미지'][@image_counter][1]
692
- @image_counter += 1
693
- if @image_counter > @data['이미지설정']['이미지'].length-1
694
- @image_counter = 0
695
- end
742
+ image = @data['이미지설정']['이미지'][@image_counter][1] # 순차적으로 이미지 선택
743
+ @image_counter += 1
744
+ # 이미지 카운터가 이미지 배열의 길이를 초과하지 않도록 처리
745
+ if @image_counter > @data['이미지설정']['이미지'].length - 1
746
+ @image_counter = 0 # 끝까지 갔으면 0으로 리셋
747
+ end
696
748
  end
697
- end
749
+ end
750
+
751
+ image = image.force_encoding('UTF-8')
752
+
753
+ # 클립보드에 복사
754
+ Clipboard.copy(image)
755
+
756
+
698
757
  @data['table'][index][-1] = 5
699
758
  @data['table'] << []
700
759
  @data['table'].pop
@@ -808,7 +867,7 @@ class Wordpress
808
867
  url = @data['table'][index][1].to_s.force_encoding('utf-8')
809
868
 
810
869
  # puts '[작업 준비!!] 포스팅 제목/내용 준비 완료.......'.green
811
- naver.update(telegram_number,url,content,images,nomber,option)
870
+ naver.update(telegram_number,url,content,image,nomber,option)
812
871
 
813
872
 
814
873
  #완료했으니 수량 카운터
@@ -1339,15 +1398,14 @@ class Wordpress
1339
1398
  on_clicked{
1340
1399
  file = open_file
1341
1400
  if file != nil
1342
- file_name = file.split("\\")[-1]
1401
+ file_path = file.gsub('/', '\\')
1343
1402
  @data['이미지설정']['이미지'] << [false, file, file]
1344
1403
  @data['이미지설정']['이미지'] << [false, file, file]
1345
1404
  @data['이미지설정']['이미지'].pop
1346
1405
  end
1347
1406
  }
1348
1407
  }
1349
-
1350
-
1408
+
1351
1409
 
1352
1410
  button(' 전체선택 '){
1353
1411
  top 0
@@ -1415,7 +1473,7 @@ class Wordpress
1415
1473
  editable true
1416
1474
  }
1417
1475
  text_column('이미지파일'){
1418
-
1476
+ editable true
1419
1477
  }
1420
1478
 
1421
1479
  cell_rows @data['이미지설정']['이미지']
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tg_send_zon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - zon