tg_send_zon 0.0.2 → 0.0.3

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 +98 -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: 17620f34faad15c2f44511fbf88ae0ca1d5f959bc36b345f37705e577c1ccd2e
4
+ data.tar.gz: e7125f2023eaf6c46ded0237a7a6be096c456b549b395350e39b56e080fa20f7
5
5
  SHA512:
6
- metadata.gz: 868324a6b0d36fd844a529faf6e1f22d42f91178fe662fd92184799ffaabebf8637c72550e2b164d5ab0a602ac1f3360fc87e7e4618727ceff46d0ca64850eaf
7
- data.tar.gz: 9b72108eb9b06d46b6a37071ee18fe71c1d00528a09e1f41d8e4feac099c9f8054a8dba157511efa8e5e34f3c4809ff18e302bdab0e9559c7ad5a343c378f432
6
+ metadata.gz: eb60d2f732201d259f2bb05c0f99d671c8a45f721cde429d0c9647328810bc60a4ecad4f03a754890b6c1d57a249c43b4131bc6a200d1de0726db66a6dd81472
7
+ data.tar.gz: b3eb3cef822c18c5e30edfadfbd888a528186e507f41ed57b3063a752bede783e4cecc83570a5ffa8e84200fdf4746551e38457f3efb03e5287d8a463239d8ca
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,53 @@ 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
+ puts image
508
+ sleep(0.5)
474
509
  key_down('ctrl')
475
510
  key_stroke('v')
476
511
  key_up('ctrl')
512
+ sleep(0.5)
477
513
  key_stroke('enter')
478
514
  sleep(1.5)
515
+
479
516
  ################### 사진 입력 ####################
480
517
 
481
-
518
+
482
519
  ################### 내용 입력 ####################
483
520
  @driver.execute_script("document.getElementById('editable-message-text-modal').innerText = ''")
521
+
522
+
484
523
  sleep(1)
485
524
  @content = content
486
525
  Clipboard.copy(content)
487
526
  @driver.action.key_down(:control).send_keys('v').key_up(:control).perform #새로넣은 코드 (내용 한번에 복붙방식)
488
527
  sleep(1)
489
528
  ################### 내용 입력 ####################
490
-
491
-
529
+ rescue
530
+ # 이미지 발송 금지 된 방 예외 처리
531
+ puts "#{url} [해당 방은 이미지 발송이 금지된 방으로 메세지만 발송합니다.]".magenta
532
+ @driver.execute_script("document.getElementById('editable-message-text').innerText = ''")
533
+ sleep(1)
534
+ @driver.find_element(:xpath, '//*[@id="editable-message-text"]').click
535
+ sleep(1)
536
+ @content = content
537
+ Clipboard.copy(content)
538
+ @driver.action.key_down(:control).send_keys('v').key_up(:control).perform #새로넣은 코드 (내용 한번에 복붙방식)
539
+ sleep(1)
540
+ end
541
+
492
542
  ################### 회차 옵션 ####################
493
543
  if option['발송횟수추가'] == 'true'
494
544
  puts '회수 추가.......'.green
@@ -501,7 +551,7 @@ class Naver
501
551
  else
502
552
  end
503
553
  ################### 회차 옵션 ####################
504
-
554
+
505
555
 
506
556
  ################### 발송 엔터 ####################
507
557
  @driver.action.key_down(:enter).key_up(:enter).perform
@@ -682,19 +732,29 @@ class Wordpress
682
732
 
683
733
 
684
734
  @data['table'][index][-1] = 0
735
+
736
+
685
737
  if @data['이미지설정']['이미지'].length == 0
686
- images = ''
687
- else
738
+ image = '' # 이미지가 없으면 빈 문자열을 할당
739
+ else
688
740
  if @data['이미지설정']['랜덤사용'].checked?
689
- images = @data['이미지설정']['이미지'].sample[1]
741
+ image = @data['이미지설정']['이미지'].sample[1] # 랜덤으로 이미지 선택
690
742
  else
691
- images = @data['이미지설정']['이미지'][@image_counter][1]
692
- @image_counter += 1
693
- if @image_counter > @data['이미지설정']['이미지'].length-1
694
- @image_counter = 0
695
- end
743
+ image = @data['이미지설정']['이미지'][@image_counter][1] # 순차적으로 이미지 선택
744
+ @image_counter += 1
745
+ # 이미지 카운터가 이미지 배열의 길이를 초과하지 않도록 처리
746
+ if @image_counter > @data['이미지설정']['이미지'].length - 1
747
+ @image_counter = 0 # 끝까지 갔으면 0으로 리셋
748
+ end
696
749
  end
697
- end
750
+ end
751
+
752
+ image = image.force_encoding('UTF-8')
753
+
754
+ # 클립보드에 복사
755
+ Clipboard.copy(image)
756
+
757
+
698
758
  @data['table'][index][-1] = 5
699
759
  @data['table'] << []
700
760
  @data['table'].pop
@@ -808,7 +868,7 @@ class Wordpress
808
868
  url = @data['table'][index][1].to_s.force_encoding('utf-8')
809
869
 
810
870
  # puts '[작업 준비!!] 포스팅 제목/내용 준비 완료.......'.green
811
- naver.update(telegram_number,url,content,images,nomber,option)
871
+ naver.update(telegram_number,url,content,image,nomber,option)
812
872
 
813
873
 
814
874
  #완료했으니 수량 카운터
@@ -1339,15 +1399,14 @@ class Wordpress
1339
1399
  on_clicked{
1340
1400
  file = open_file
1341
1401
  if file != nil
1342
- file_name = file.split("\\")[-1]
1402
+ file_path = file.gsub('/', '\\')
1343
1403
  @data['이미지설정']['이미지'] << [false, file, file]
1344
1404
  @data['이미지설정']['이미지'] << [false, file, file]
1345
1405
  @data['이미지설정']['이미지'].pop
1346
1406
  end
1347
1407
  }
1348
1408
  }
1349
-
1350
-
1409
+
1351
1410
 
1352
1411
  button(' 전체선택 '){
1353
1412
  top 0
@@ -1415,7 +1474,7 @@ class Wordpress
1415
1474
  editable true
1416
1475
  }
1417
1476
  text_column('이미지파일'){
1418
-
1477
+ editable true
1419
1478
  }
1420
1479
 
1421
1480
  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.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - zon