njongto_duo 0.0.35 → 0.0.39
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.
Potentially problematic release.
This version of njongto_duo might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/lib/njongto_duo.rb +103 -45
- 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: 89b6150bc526341028fab40a143ac6772730f2bfe940fb6bcce5435680cc8f86
         | 
| 4 | 
            +
              data.tar.gz: 6f0ad9b7ec8158abfd2323b1a194e90148aab5958ddeba1171fd7fd1973e69ac
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 18df24e2fb5c7aafced5e42197027aeb76fd3f3f5b57904a03040df59b74f45d95ce81c3f925a73a0a4f387370c2f0391cb502f98321ae3562fe65befd240905
         | 
| 7 | 
            +
              data.tar.gz: 9d5ca60c6e1f4adaceb7773f714343cea3830a0bcc495513efa9e0a6a639d77bf4069acb7584e07f1d8f74fc31810ae0cba5cedc93a978b5c010d6027d91d55d
         | 
    
        data/lib/njongto_duo.rb
    CHANGED
    
    | @@ -42,6 +42,8 @@ class Naver | |
| 42 42 | 
             
                        begin
         | 
| 43 43 | 
             
                            Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
         | 
| 44 44 | 
             
                            options = Selenium::WebDriver::Chrome::Options.new
         | 
| 45 | 
            +
                            options.add_argument('--no-first-run') # 자동 실행 시 나타나는 "첫 실행" 화면 방지
         | 
| 46 | 
            +
                            options.add_argument('--disable-extensions') # 확장 프로그램 초기화 화면 방지
         | 
| 45 47 | 
             
                            options.page_load_strategy = :normal
         | 
| 46 48 | 
             
                            options.timeouts = {page_load: 20_000}
         | 
| 47 49 | 
             
                            options.page_load_strategy = 'none'
         | 
| @@ -57,13 +59,8 @@ class Naver | |
| 57 59 | 
             
                        begin
         | 
| 58 60 | 
             
                            Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
         | 
| 59 61 | 
             
                            options = Selenium::WebDriver::Chrome::Options.new
         | 
| 60 | 
            -
                            #  | 
| 61 | 
            -
                             | 
| 62 | 
            -
                            # profile['network.proxy.http'] = proxy.split(':')[0]
         | 
| 63 | 
            -
                            # profile['network.proxy.http_port'] = proxy.split(':')[1].to_i
         | 
| 64 | 
            -
                            # options = Selenium::WebDriver::Chrome::Options.new
         | 
| 65 | 
            -
                            # options.profile = profile
         | 
| 66 | 
            -
                            options = Selenium::WebDriver::Chrome::Options.new
         | 
| 62 | 
            +
                            options.add_argument('--no-first-run') # 자동 실행 시 나타나는 "첫 실행" 화면 방지
         | 
| 63 | 
            +
                            options.add_argument('--disable-extensions') # 확장 프로그램 초기화 화면 방지
         | 
| 67 64 | 
             
                            options.add_argument '--proxy-server='+proxy.to_s.force_encoding('utf-8').to_s
         | 
| 68 65 | 
             
                            options.page_load_strategy = :normal
         | 
| 69 66 | 
             
                            options.timeouts = {page_load: 20_000}
         | 
| @@ -79,6 +76,8 @@ class Naver | |
| 79 76 | 
             
                            begin
         | 
| 80 77 | 
             
                                Selenium::WebDriver::Chrome::Service.driver_path = './chromedriver.exe'
         | 
| 81 78 | 
             
                                options = Selenium::WebDriver::Chrome::Options.new
         | 
| 79 | 
            +
                                options.add_argument('--no-first-run') # 자동 실행 시 나타나는 "첫 실행" 화면 방지
         | 
| 80 | 
            +
                                options.add_argument('--disable-extensions') # 확장 프로그램 초기화 화면 방지
         | 
| 82 81 | 
             
                                options.page_load_strategy = :normal
         | 
| 83 82 | 
             
                                options.timeouts = {page_load: 20_000}
         | 
| 84 83 | 
             
                                options.page_load_strategy = 'none'
         | 
| @@ -126,39 +125,57 @@ class Naver | |
| 126 125 | 
             
                    sleep(1)
         | 
| 127 126 |  | 
| 128 127 | 
             
                    begin
         | 
| 129 | 
            -
                        wait = Selenium::WebDriver::Wait.new(:timeout =>  | 
| 128 | 
            +
                        wait = Selenium::WebDriver::Wait.new(:timeout => 7)
         | 
| 129 | 
            +
                        #요소가 나타날 때까지 3초 동안 기다립니다.
         | 
| 130 | 
            +
                        wait.until { @driver.find_element(:xpath, '//*[@class="MyView-module__btn_logout___bsTOJ"]') }
         | 
| 131 | 
            +
                        sleep(1.5)
         | 
| 132 | 
            +
                        check_cookie_login = 1
         | 
| 133 | 
            +
                        puts'[Step.02] 계정 세션 확인!! 로그인 skip.......'.yellow
         | 
| 134 | 
            +
                        sleep(2.5)
         | 
| 135 | 
            +
                    rescue
         | 
| 136 | 
            +
                        wait = Selenium::WebDriver::Wait.new(:timeout => 7)
         | 
| 130 137 | 
             
                        #요소가 나타날 때까지 3초 동안 기다립니다.
         | 
| 131 138 | 
             
                        wait.until { @driver.find_element(:xpath, '//*[@class="MyView-module__link_login___HpHMW"]') }
         | 
| 132 139 | 
             
                        sleep(1.5)
         | 
| 133 140 | 
             
                        @driver.find_element(:xpath, '//*[@class="MyView-module__link_login___HpHMW"]').click
         | 
| 134 141 | 
             
                        check_cookie_login = 0
         | 
| 135 142 | 
             
                        sleep(1)
         | 
| 136 | 
            -
                    rescue
         | 
| 137 | 
            -
                        check_cookie_login = 1
         | 
| 138 | 
            -
                        puts'[Step.02] 계정 세션 확인!! 로그인 skip.......'.yellow
         | 
| 139 | 
            -
                        sleep(2.5)
         | 
| 140 143 | 
             
                    end
         | 
| 141 144 |  | 
| 142 145 | 
             
                    if check_cookie_login == 0
         | 
| 143 146 | 
             
                        puts'[Step.02] 계정 세션이 없거나 기간 만료로 인해 로그인 시도.......'.yellow
         | 
| 144 147 | 
             
                        # @driver.find_element(:xpath, '//*[@id="right-content-area"]/div[1]/div[1]/div/a').click
         | 
| 145 148 | 
             
                        sleep(3)
         | 
| 146 | 
            -
                         | 
| 147 | 
            -
             | 
| 148 | 
            -
             | 
| 149 | 
            -
             | 
| 150 | 
            -
             | 
| 151 | 
            -
             | 
| 152 | 
            -
             | 
| 153 | 
            -
             | 
| 154 | 
            -
             | 
| 155 | 
            -
             | 
| 156 | 
            -
             | 
| 157 | 
            -
             | 
| 158 | 
            -
             | 
| 159 | 
            -
             | 
| 160 | 
            -
             | 
| 161 | 
            -
             | 
| 149 | 
            +
                        begin
         | 
| 150 | 
            +
                            wait = Selenium::WebDriver::Wait.new(:timeout => 7)
         | 
| 151 | 
            +
                            #요소가 나타날 때까지 3초 동안 기다립니다.
         | 
| 152 | 
            +
                            wait.until { @driver.find_element(:xpath, '//*[@for="switch"]') }
         | 
| 153 | 
            +
                            sleep(1.5)
         | 
| 154 | 
            +
                            @driver.find_element(:xpath, '//*[@id="login_keep_wrap"]/div[1]/label').click
         | 
| 155 | 
            +
                            sleep(1.5)
         | 
| 156 | 
            +
                            @driver.find_element(:xpath, '//*[@id="id"]').click
         | 
| 157 | 
            +
                            Clipboard.copy(user_id)
         | 
| 158 | 
            +
                            @driver.action.key_down(:control).send_keys('v').key_up(:control).perform
         | 
| 159 | 
            +
                            sleep(1.5)
         | 
| 160 | 
            +
                            @driver.find_element(:xpath, '//*[@id="pw"]').click
         | 
| 161 | 
            +
                            Clipboard.copy(user_pw)
         | 
| 162 | 
            +
                            @driver.action.key_down(:control).send_keys('v').key_up(:control).perform
         | 
| 163 | 
            +
                            sleep(1.5)
         | 
| 164 | 
            +
                            @driver.find_element(:xpath, '//*[@id="log.login"]').click
         | 
| 165 | 
            +
                            sleep(2.5)
         | 
| 166 | 
            +
                        rescue => e
         | 
| 167 | 
            +
                            puts '-[√] 로딩 지연 접속 실패.......'.red
         | 
| 168 | 
            +
                            @driver.window_handles.each do |handle|
         | 
| 169 | 
            +
                                @driver.switch_to.window(handle)
         | 
| 170 | 
            +
                                begin
         | 
| 171 | 
            +
                                # 로딩 중이거나, 페이지가 완전히 로딩되지 않더라도 탭을 닫기
         | 
| 172 | 
            +
                                @driver.close
         | 
| 173 | 
            +
                                rescue Selenium::WebDriver::Error::WebDriverError => e
         | 
| 174 | 
            +
                                puts "Failed to close tab: #{e.message}"
         | 
| 175 | 
            +
                                end
         | 
| 176 | 
            +
                            end
         | 
| 177 | 
            +
                            return 0  
         | 
| 178 | 
            +
                        end  
         | 
| 162 179 |  | 
| 163 180 | 
             
                    else
         | 
| 164 181 | 
             
                        # @driver.switch_to.default_content
         | 
| @@ -170,11 +187,18 @@ class Naver | |
| 170 187 | 
             
                        wait.until { @driver.find_element(:xpath, '//*[@class="MyView-module__btn_logout___bsTOJ"]') }
         | 
| 171 188 |  | 
| 172 189 | 
             
                    rescue => e
         | 
| 173 | 
            -
                        puts '-[√] 로그인  | 
| 174 | 
            -
                         | 
| 175 | 
            -
             | 
| 190 | 
            +
                        puts '-[√] 로그인 실패.......'.red
         | 
| 191 | 
            +
                        @driver.window_handles.each do |handle|
         | 
| 192 | 
            +
                            @driver.switch_to.window(handle)
         | 
| 193 | 
            +
                            begin
         | 
| 194 | 
            +
                            # 로딩 중이거나, 페이지가 완전히 로딩되지 않더라도 탭을 닫기
         | 
| 195 | 
            +
                            @driver.close
         | 
| 196 | 
            +
                            rescue Selenium::WebDriver::Error::WebDriverError => e
         | 
| 197 | 
            +
                            puts "Failed to close tab: #{e.message}"
         | 
| 198 | 
            +
                            end
         | 
| 199 | 
            +
                        end
         | 
| 176 200 | 
             
                        return 0  
         | 
| 177 | 
            -
                    end
         | 
| 201 | 
            +
                    end 
         | 
| 178 202 | 
             
                end
         | 
| 179 203 |  | 
| 180 204 | 
             
                def create_id
         | 
| @@ -210,11 +234,19 @@ class Naver | |
| 210 234 | 
             
                            puts'[기능 발동!!] 오픈톡 유형 감지 확인.......'.green
         | 
| 211 235 | 
             
                            puts'[Step.04] 제목 입력.......'.yellow
         | 
| 212 236 | 
             
                            @driver.find_element(:xpath, '//*[@placeholder="제목"]').send_keys(title)
         | 
| 213 | 
            -
                        rescue
         | 
| 237 | 
            +
                        rescue => e
         | 
| 214 238 | 
             
                            puts '[Error] 제목 입력란을 찾을 수 없습니다. 브라우저를 종료합니다.'.red
         | 
| 215 | 
            -
                            @driver. | 
| 216 | 
            -
             | 
| 217 | 
            -
             | 
| 239 | 
            +
                            @driver.window_handles.each do |handle|
         | 
| 240 | 
            +
                                @driver.switch_to.window(handle)
         | 
| 241 | 
            +
                                begin
         | 
| 242 | 
            +
                                # 로딩 중이거나, 페이지가 완전히 로딩되지 않더라도 탭을 닫기
         | 
| 243 | 
            +
                                @driver.close
         | 
| 244 | 
            +
                                rescue Selenium::WebDriver::Error::WebDriverError => e
         | 
| 245 | 
            +
                                puts "Failed to close tab: #{e.message}"
         | 
| 246 | 
            +
                                end
         | 
| 247 | 
            +
                            end
         | 
| 248 | 
            +
                            return 0  
         | 
| 249 | 
            +
                        end     
         | 
| 218 250 | 
             
                    end
         | 
| 219 251 |  | 
| 220 252 | 
             
                    #내용 입력
         | 
| @@ -233,11 +265,19 @@ class Naver | |
| 233 265 | 
             
                        @driver.find_element(:xpath, '//*[@placeholder="내용을 입력해 주세요."]')
         | 
| 234 266 | 
             
                        puts'[Step.05] 내용 입력.......'.yellow
         | 
| 235 267 | 
             
                        @driver.find_element(:xpath, '//*[@placeholder="내용을 입력해 주세요."]').click
         | 
| 236 | 
            -
                        rescue
         | 
| 268 | 
            +
                        rescue => e
         | 
| 237 269 | 
             
                            puts '[Error] 내용 입력란을 찾을 수 없습니다. 브라우저를 종료합니다.'.red
         | 
| 238 | 
            -
                            @driver. | 
| 239 | 
            -
             | 
| 240 | 
            -
             | 
| 270 | 
            +
                            @driver.window_handles.each do |handle|
         | 
| 271 | 
            +
                                @driver.switch_to.window(handle)
         | 
| 272 | 
            +
                                begin
         | 
| 273 | 
            +
                                # 로딩 중이거나, 페이지가 완전히 로딩되지 않더라도 탭을 닫기
         | 
| 274 | 
            +
                                @driver.close
         | 
| 275 | 
            +
                                rescue Selenium::WebDriver::Error::WebDriverError => e
         | 
| 276 | 
            +
                                puts "Failed to close tab: #{e.message}"
         | 
| 277 | 
            +
                                end
         | 
| 278 | 
            +
                            end
         | 
| 279 | 
            +
                            return 0  
         | 
| 280 | 
            +
                        end 
         | 
| 241 281 | 
             
                    end          
         | 
| 242 282 |  | 
| 243 283 | 
             
                    puts content
         | 
| @@ -309,16 +349,34 @@ class Naver | |
| 309 349 | 
             
                            puts'[Step.06] 등록 버튼 클릭 (시도).......'.yellow
         | 
| 310 350 | 
             
                            @driver.find_element(:xpath, '//*[@data-nclicks="nbw.ok"]').click
         | 
| 311 351 | 
             
                            puts'[Step.07] 등록 버튼 클릭 (성공).......'.yellow
         | 
| 312 | 
            -
                        rescue
         | 
| 352 | 
            +
                        rescue => e
         | 
| 313 353 | 
             
                            puts '[Error] 등록 버튼을 찾을 수 없습니다. 브라우저를 종료합니다.'.red
         | 
| 314 | 
            -
                            @driver. | 
| 315 | 
            -
             | 
| 316 | 
            -
             | 
| 354 | 
            +
                            @driver.window_handles.each do |handle|
         | 
| 355 | 
            +
                                @driver.switch_to.window(handle)
         | 
| 356 | 
            +
                                begin
         | 
| 357 | 
            +
                                # 로딩 중이거나, 페이지가 완전히 로딩되지 않더라도 탭을 닫기
         | 
| 358 | 
            +
                                @driver.close
         | 
| 359 | 
            +
                                rescue Selenium::WebDriver::Error::WebDriverError => e
         | 
| 360 | 
            +
                                puts "Failed to close tab: #{e.message}"
         | 
| 361 | 
            +
                                end
         | 
| 362 | 
            +
                            end
         | 
| 363 | 
            +
                            return 0  
         | 
| 364 | 
            +
                        end  
         | 
| 365 | 
            +
                            
         | 
| 366 | 
            +
                       
         | 
| 317 367 | 
             
                    end
         | 
| 318 368 | 
             
                    sleep(5)
         | 
| 319 369 | 
             
                    begin
         | 
| 320 370 | 
             
                        puts'[MISSION SUCCESS !! // 미션 성공 !!] 브라우저 종료.......'.green
         | 
| 321 | 
            -
                        @driver. | 
| 371 | 
            +
                        @driver.window_handles.each do |handle|
         | 
| 372 | 
            +
                            @driver.switch_to.window(handle)
         | 
| 373 | 
            +
                            begin
         | 
| 374 | 
            +
                            # 로딩 중이거나, 페이지가 완전히 로딩되지 않더라도 탭을 닫기
         | 
| 375 | 
            +
                            @driver.close
         | 
| 376 | 
            +
                            rescue Selenium::WebDriver::Error::WebDriverError => e
         | 
| 377 | 
            +
                            puts "Failed to close tab: #{e.message}"
         | 
| 378 | 
            +
                            end
         | 
| 379 | 
            +
                        end
         | 
| 322 380 | 
             
                    rescue
         | 
| 323 381 |  | 
| 324 382 | 
             
                    end
         |