Browse Source

Merge remote-tracking branch 'origin/master'

zooey 2 years ago
parent
commit
7fba1beeb0

+ 1 - 0
website_clickjobs/tools/resetrouter.py

@@ -1,3 +1,4 @@
+# coding=utf-8
 import time
 from selenium import webdriver
 from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

+ 171 - 0
website_clickjobs/type-1/_clickjob0113.py

@@ -0,0 +1,171 @@
+import time
+from datetime import datetime
+import json
+from selenium import webdriver
+from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
+import time
+import os
+import urllib.parse
+from selenium.webdriver.support.ui import WebDriverWait
+from selenium.webdriver.common.by import By
+from selenium.webdriver.support import expected_conditions as EC
+import codecs
+import random
+import requests
+import dataset
+import traceback
+import sys
+from selenium.webdriver.common.keys import Keys
+import timeit
+import socket
+
+db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/seo?charset=utf8mb4')
+driver=None
+headers = {
+        "Authorization": "Bearer " + "t35vhZtWNgvDNWHc3DJh0OKll3mcB9GvC8K2EAkBug2",
+        "Content-Type": "application/x-www-form-urlencoded"
+}
+
+sleepoffset = 0
+
+def send_msg(kw):
+    params = {"message": "處理關鍵字: "+kw}  
+    r = requests.post("https://notify-api.line.me/api/notify",headers=headers, params=params)
+
+def empty_query(q):
+    global driver
+    googleurl='https://www.google.com/search?q='+urllib.parse.quote(q)
+    driver.get(googleurl)
+    time.sleep(3)
+
+def process_query(domain, target_id, brands, query):
+    print(target_id)
+    sleepoffset = 0
+    global driver
+    if query == "艾立思" and "index" in target_id:
+        driver.get('https://www.google.com/search?num=1000&q=艾立思&rlz=1C1ONGR_zh-TWTW997TW997&ei=zjdUY_DBG9Lm-Abpgq84&start=0&sa=N&filter=0&ved=2ahUKEwjw4KeEvfT6AhVSM94KHWnBCwcQ8tMDegQIARAQ&cshid=1666463754367857&biw=1368&bih=761&dpr=2')
+        time.sleep(4)
+    else:
+        driver.get('https://www.google.com?num=100')
+        time.sleep(3)
+        print(driver.current_url)
+
+        # elmts=driver.find_elements_by_xpath("//div[@class='yuRUbf']/a")
+        # ABOVE METHOD IS DEPRECATED STARTING SELENIUM 4.3.0, USE THIS
+        #
+        elmt = driver.find_element(By.XPATH, "//input[@name='q']")
+        time.sleep(1)
+
+        elmt.send_keys(query)
+        elmt.send_keys(Keys.ENTER)
+
+    idx=1
+    ranking=-1
+    domain_in_link = 0
+
+    googleurl = driver.current_url
+    print(driver.current_url)
+
+    if "sorry" in googleurl:
+        return 444
+
+    try: #in case there are duplicates...
+        clickmore=driver.find_element("xpath","//p[@id='ofr']").find_element(By.TAG_NAME, "a")
+        webdriver.ActionChains(driver).move_to_element(clickmore).perform()
+        webdriver.ActionChains(driver).move_to_element(clickmore).click().perform()
+    except:
+        pass
+    elmts=driver.find_elements("xpath","//div[@class='yuRUbf']/a")
+
+    targets=[]
+    targets.append("https://hhh.com.tw/HHH_NEW/designers/index_designerList.php?cid=" + target_id)
+    targets.append("https://m.hhh.com.tw/HHH_NEW/designers/index_designerList.php?cid=" + target_id)
+    targets.append("https://hhh.com.tw/HHH_NEW/designers_static/" + target_id + ".html")
+    targets.append("https://m.hhh.com.tw/HHH_NEW/designers_static/" + target_id + ".html")
+    targets.append("https://hhh.com.tw/designer-about.php?designer_id=" + target_id + ".html")
+    targets.append("https://m.hhh.com.tw/designer-about.php?designer_id=" + target_id + ".html")
+    
+    targets.append("https://www.hhh.com.tw/HHH_NEW/designers/index_designerList.php?cid=" + target_id)
+    targets.append("https://www.hhh.com.tw/HHH_NEW/designers_static/" + target_id + ".html")
+    targets.append("https://www.hhh.com.tw/designer-about.php?designer_id=" + target_id + ".html")
+    
+    print (len(elmts))
+    # driver.save_screenshot('c:/tmp/test.png')
+    n=0
+    for el in elmts:
+        n+=1
+        href=el.get_attribute('href')
+        txt=el.text
+        if len(txt)>10:
+            for t in targets:
+                if t in href:
+                    domain_in_link += 1
+                    print('clicked....')
+                    print(href)
+                    print(txt)
+
+                    if query == "艾立思" and "index" in target_id and href != "https://hhh.com.tw/brand-index.php?brand_id=211":
+                        print("wrong site")
+                        continue
+                    
+                    webdriver.ActionChains(driver).move_to_element(el).perform()
+                    webdriver.ActionChains(driver).move_to_element(el).click().perform()
+                    print("Rank: " + str(n))
+                    duration = random.randint(40,60)
+                    time.sleep(duration)
+
+                    print(domain_in_link)
+                    return 200
+    
+    with open("missing.txt", "a") as file: #if not found
+        file.write(target_id + " " + query + "\n")
+    
+    
+
+def run_once(domain, target_id, brands, query):
+    global driver
+    result=[]
+    options = webdriver.ChromeOptions()
+    options.add_argument('--headless')
+#    options.add_argument("--user-agent=" +user_agent)
+    options.add_argument("--incognito")
+    options.add_argument('--no-sandbox')
+    options.add_argument('--disable-dev-shm-usage')
+
+    driver = webdriver.Chrome(
+    options=options)
+
+    driver.delete_all_cookies()
+    driver.set_window_size(1400,1000)
+
+    statuscode = process_query(domain, target_id, brands, query)
+    driver.quit()
+
+    return statuscode
+
+#execution starts here
+
+def execute(domain, target_id, brands, target_name):
+    print("Ctrl+C or Ctrl+Z to stop.")
+    statuscode = 0
+    st = timeit.default_timer()
+    try:
+        statuscode = run_once(domain, target_id, brands, target_name)
+    except:
+        traceback.print_exc()
+    timetaken = timeit.default_timer()-st
+    print("Time taken: " + str(timetaken))
+    
+    print("Process returned with " + str(statuscode))
+    if statuscode == 444:
+        print("You have been caught!!!")
+        
+        #notify("Clickbot " + brands[domain] + " has been caught by Google and will terminate. IP: ")
+
+    extrasleep = 0
+    if(timetaken < 50):
+        extrasleep = 50 - timetaken
+    print("Ctrl+C or Ctrl+Z to stop now.")
+    print("You have " + str(10 + extrasleep) + " seconds.")
+    time.sleep(10 + extrasleep)
+    return statuscode

+ 49 - 0
website_clickjobs/type-1/hhh_r3.py

@@ -0,0 +1,49 @@
+from _clickjob0113 import *
+
+hhhdb = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/seo?charset=utf8mb4')
+
+def reset():
+    ds=hhhdb.query('select * from hhh.hhh_designer_for_crawl')
+    #TAG ABOVE AND UNTAG BELOW FOR DEBUG
+    #ds=hhhdb.query('select * from hhh.hhh_designer_for_crawl where hdesigner_id=XXX')
+    data=[]
+    for i in ds:
+        for j in range(i['weight']):
+            data.append([i['hdesigner_id'],i['title'].replace('\xa0',' ')])
+    random.shuffle(data)
+    return data
+
+domain = 'hhh.com.tw'
+#target_domain = get_xml_data(sourceurls)
+brands={domain:'hhh'}
+#query_list = ['幸福空間']
+
+#data = getdata()
+
+runcount=0
+while True:
+    try:
+        print("Gathering data...")
+        data = reset()
+        print('Data collected')
+        dataok = 1
+    except:
+        dataok = 0
+        print("Error while collecting data.")
+    if dataok == 1:
+        for i in range(10):
+            print("Run " + str(runcount+1))
+            target = random.choice(data) # START HERE
+            target_id = str(target[0])
+            target_name = target[1]
+            print(target_id)
+            print(target_name)
+            statuscode = execute(domain, target_id, brands, target_name)
+            if statuscode == 444:
+                print("Completed ", runcount, " times before being caught")
+                time.sleep(300)
+            else:
+                runcount+=1
+                time.sleep(40)
+    else:
+        time.sleep(60)

+ 5 - 0
website_clickjobs/type-2/icons.py

@@ -0,0 +1,5 @@
+from _clickjob import *
+
+target = 'https://www.theicons.net'
+
+execute(target)

+ 1 - 0
website_clickjobs/type-V/_execute.py

@@ -1,3 +1,4 @@
+#coding=utf-8
 from selenium import webdriver
 import traceback
 import time

+ 6 - 5
website_clickjobs/type-V/c1.py

@@ -1,3 +1,4 @@
+#coding=utf-8
 from _execute import *
 import random
 
@@ -5,13 +6,13 @@ def pickvideo():
     n = random.randint(0,3)
     if n==0:
         term = "信義房屋"
-        whitelist = ["https://www.youtube.com/user/sinyicity","https://www.youtube.com/watch?v=7UGiKEc2JEU","https://www.youtube.com/channel/UCU76s7FGtDvDta2mf2Zdn4Q","https://www.youtube.com/watch?v=J_3FkWnoKX8","https://www.youtube.com/watch?v=nLOvQNocmWM","https://www.youtube.com/watch?v=By63yTOiPFQ","https://csr.sinyi.com.tw/client/innovation.php","https://events.sinyi.com.tw/20190828_webintro/","https://www.youtube.com/watch?v=70u509rtnHc","https://www.youtube.com/watch?v=mLerG1EN9Og","https://www.youtube.com/watch?v=HcXPOLE0DX0","https://www.youtube.com/watch?v=1NZH4Npo6Bw","https://events.sinyi.com.tw/tvc2018-forhome/index.html","https://www.sinyi.com.tw/aboutsinyi/aboutsinyi_publish","https://www.youtube.com/watch?v=nj1mTUG8yJo","https://www.youtube.com/watch?v=3Xy7YCCsnq0"]
+        whitelist = ["https://hr.sinyi.com.tw/","https://csr.sinyi.com.tw/client/innovation.php","https://www.youtube.com/channel/UCU76s7FGtDvDta2mf2Zdn4Q","https://events.sinyi.com.tw/20190828_webintro/","https://www.sinyi.com.tw/aboutsinyi/aboutsinyi_publish","https://money.udn.com/money/story/12276/6669984","https://www.youtube.com/watch?v=TwZwAAqkX_k","https://www.youtube.com/watch?v=1OxZNuwlUOk","https://www.youtube.com/watch?v=3Xy7YCCsnq0","https://www.youtube.com/watch?v=5JKbrS0JSak","https://www.youtube.com/watch?v=tbdpEt65LRI","https://www.youtube.com/watch?v=mLerG1EN9Og","https://www.youtube.com/watch?v=t5fzPcp-dK4","https://www.youtube.com/channel/UCV-0ttUE0Z-BTuBcwvQNjgQ","https://www.youtube.com/watch?v=bwlz8Tq6el8"]
     if n==1:
         term = "信義 房屋"
-        whitelist = ["https://www.youtube.com/user/sinyicity","https://www.youtube.com/watch?v=7UGiKEc2JEU","https://www.youtube.com/channel/UCU76s7FGtDvDta2mf2Zdn4Q","https://www.youtube.com/watch?v=J_3FkWnoKX8","https://www.youtube.com/watch?v=nLOvQNocmWM","https://www.youtube.com/watch?v=By63yTOiPFQ","https://csr.sinyi.com.tw/client/innovation.php","https://events.sinyi.com.tw/20190828_webintro/","https://www.youtube.com/watch?v=70u509rtnHc","https://www.youtube.com/watch?v=mLerG1EN9Og","https://www.youtube.com/watch?v=HcXPOLE0DX0","https://www.youtube.com/watch?v=1NZH4Npo6Bw","https://events.sinyi.com.tw/tvc2018-forhome/index.html","https://www.sinyi.com.tw/aboutsinyi/aboutsinyi_publish","https://www.youtube.com/watch?v=nj1mTUG8yJo","https://www.youtube.com/watch?v=3Xy7YCCsnq0","https://www.youtube.com/watch?v=IMjOhpAHcfs","https://www.youtube.com/watch?v=2a510BJzyn0","https://www.youtube.com/watch?v=TwZwAAqkX_k","https://www.youtube.com/watch?v=DLbCu_zia-4","https://www.youtube.com/watch?v=mlqY5X2oTuk"]
+        whitelist = ["https://hr.sinyi.com.tw/","https://csr.sinyi.com.tw/client/innovation.php","https://www.youtube.com/channel/UCU76s7FGtDvDta2mf2Zdn4Q","https://events.sinyi.com.tw/20190828_webintro/","https://www.sinyi.com.tw/aboutsinyi/aboutsinyi_publish","https://money.udn.com/money/story/12276/6669984","https://www.youtube.com/watch?v=TwZwAAqkX_k","https://www.youtube.com/watch?v=1OxZNuwlUOk","https://www.youtube.com/watch?v=3Xy7YCCsnq0","https://www.youtube.com/watch?v=5JKbrS0JSak","https://www.youtube.com/watch?v=mLerG1EN9Og","https://www.youtube.com/watch?v=tbdpEt65LRI","https://www.youtube.com/watch?v=t5fzPcp-dK4","https://www.youtube.com/channel/UCV-0ttUE0Z-BTuBcwvQNjgQ","https://www.youtube.com/watch?v=bwlz8Tq6el8"]
     if n==2:
         term = "信義房仲"
-        whitelist = ["https://news.housefun.com.tw/news/article/112920310098.html","https://www.facebook.com/SinyiRealtyInc.HR/videos/%E6%88%BF%E4%BB%B2%E5%B7%A5%E4%BD%9C%E9%96%8B%E7%AE%B1%E5%85%AD%E5%80%8B%E6%9C%88%E4%B9%8B%E5%BE%8C%E6%88%91%E9%82%84%E5%9C%A8/932749653922769/","https://www.youtube.com/watch?v=uOsZiIhyxVM","https://www.youtube.com/watch?v=juJTjzi4DV0","https://www.youtube.com/user/sinyicity","https://sinyipodcast.com.tw/article/news/trend/44","https://news.housefun.com.tw/news/article/205819310765.html","https://www.sinyinews.com.tw/sinyipedia/buyarticle/337","https://www.youtube.com/watch?v=X7OcMNhXPD8","https://www.youtube.com/watch?v=By63yTOiPFQ","https://www.youtube.com/watch?v=nj1mTUG8yJo","https://www.youtube.com/watch?v=Hi-IY6R7_10","https://www.youtube.com/watch?v=mlqY5X2oTuk","https://www.youtube.com/watch?v=1NZH4Npo6Bw","https://www.youtube.com/watch?v=U95DWC8OXzc","https://www.youtube.com/watch?v=IMjOhpAHcfs","https://www.youtube.com/watch?v=mLerG1EN9Og","https://csr.sinyi.com.tw/client/innovation.php","https://ydwell.com.tw/%E2%9F%B0%E6%88%91%E5%9C%A8%E4%BF%A1%E7%BE%A9%E4%B8%8A%E7%8F%AD/%E4%BB%80%E9%BA%BC%E6%88%BF%E4%BB%B2%E8%B6%85%E7%B4%9A%E6%A5%AD%E5%8B%99%E5%8F%AF%E4%BB%A5%E4%B8%80%E6%AC%A1%E9%A0%98%E8%B5%B0600%E8%90%AC%EF%BC%8C%E6%9C%83%E4%B8%8D%E6%9C%83%E5%A4%AA%E8%AA%87/","https://zh-tw.facebook.com/SinyiRealtyInc.HR/videos/2022%E4%B8%83%E6%9C%88%E7%B7%9A%E4%B8%8A%E6%88%BF%E4%BB%B2%E5%B7%A5%E4%BD%9C%E8%AA%AA%E6%98%8E%E6%9C%83/437840664688242/","https://www.youtube.com/watch?v=tQVXzPvrAhk","https://www.youtube.com/watch?v=nLOvQNocmWM"]
+        whitelist = ["https://www.youtube.com/watch?v=juJTjzi4DV0","https://www.sinyinews.com.tw/sinyipedia/buyarticle/337","https://www.youtube.com/watch?v=uOsZiIhyxVM","https://www.youtube.com/watch?v=1OxZNuwlUOk","https://www.youtube.com/watch?v=5JKbrS0JSak","https://www.youtube.com/watch?v=sMEFJXfI7tg","https://www.youtube.com/watch?v=tbdpEt65LRI","https://www.youtube.com/watch?v=X7OcMNhXPD8","https://www.youtube.com/watch?v=TwZwAAqkX_k","https://csr.sinyi.com.tw/client/innovation.php","https://www.youtube.com/watch?v=bwlz8Tq6el8","https://www.youtube.com/watch?v=70u509rtnHc","https://www.youtube.com/watch?v=9hEd3LHqeXg","https://www.youtube.com/watch?v=M6bqmUvLCTI","https://www.youtube.com/watch?v=iWOHUiGwnPE"]
     if n==3:
         term = "信義 房仲"
         whitelist = ["https://www.facebook.com/SinyiRealtyInc.HR/videos/%E6%88%BF%E4%BB%B2%E5%B7%A5%E4%BD%9C%E9%96%8B%E7%AE%B1%E5%85%AD%E5%80%8B%E6%9C%88%E4%B9%8B%E5%BE%8C%E6%88%91%E9%82%84%E5%9C%A8/932749653922769/","https://www.youtube.com/watch?v=uOsZiIhyxVM","https://www.youtube.com/watch?v=juJTjzi4DV0","https://news.housefun.com.tw/news/article/771949232630.html","https://sinyipodcast.com.tw/article/news/trend/44","https://www.youtube.com/user/sinyicity","https://www.youtube.com/watch?v=X7OcMNhXPD8","https://www.youtube.com/watch?v=By63yTOiPFQ","https://www.sinyinews.com.tw/sinyipedia/buyarticle/337","https://www.youtube.com/watch?v=nj1mTUG8yJo","https://www.youtube.com/watch?v=U95DWC8OXzc","https://www.youtube.com/watch?v=mlqY5X2oTuk","https://www.youtube.com/watch?v=Hi-IY6R7_10","https://www.youtube.com/watch?v=1NZH4Npo6Bw","https://www.youtube.com/watch?v=IMjOhpAHcfs","https://www.youtube.com/watch?v=mLerG1EN9Og"]
@@ -19,10 +20,10 @@ def pickvideo():
 
 termlist = ["信義房屋","信義 房屋","信義房仲","信義 房仲"]
 
-clickvideo = 0 # set to 1 to alert if video is found (DOES NOT CLICK!), requires whitelist
+clickvideo = 2 # set to 1 to alert if video is found (DOES NOT CLICK!), requires whitelist
 # ^ set to 2 to click the video when found, requires whitelist
 # ^ any other value will only search for videos based on termlist
-savefile = 1 # set to 1 to save screenshot and ranking to file
+savefile = 0 # set to 1 to save screenshot and ranking to file
 
 if clickvideo == 1 or clickvideo == 2:
     while True:

+ 4 - 4
website_clickjobs/type-Y/c1.py

@@ -5,16 +5,16 @@ def pickvideo():
     n = random.randint(0,3)
     if n==0:
         term = "信義房屋"
-        whitelist = ["https://www.youtube.com/watch?v=TwZwAAqkX_k","https://www.youtube.com/watch?v=7UGiKEc2JEU","https://www.youtube.com/watch?v=DLbCu_zia-4","https://www.youtube.com/watch?v=By63yTOiPFQ","https://www.youtube.com/watch?v=QzyTD949cVk","https://www.youtube.com/watch?v=WC_rYXVP2g8","https://www.youtube.com/watch?v=9lJ3gnqMT4o","https://www.youtube.com/watch?v=fx4fTBh9PFo","https://www.youtube.com/watch?v=Kh4Whhp2kYA","https://www.youtube.com/watch?v=tbdpEt65LRI","https://www.youtube.com/watch?v=WC_rYXVP2g8",]
+        whitelist = ["https://www.youtube.com/watch?v=7UGiKEc2JEU","https://www.youtube.com/watch?v=J_3FkWnoKX8","https://www.youtube.com/watch?v=By63yTOiPFQ","https://www.youtube.com/watch?v=QzyTD949cVk","https://www.youtube.com/watch?v=WC_rYXVP2g8","https://www.youtube.com/watch?v=fx4fTBh9PFo","https://www.youtube.com/watch?v=9lJ3gnqMT4o","https://www.youtube.com/watch?v=DjCW-aD4TP4","https://www.youtube.com/watch?v=tbdpEt65LRI","https://www.youtube.com/watch?v=WC_rYXVP2g8","https://www.youtube.com/watch?v=Hi-IY6R7_10","https://www.youtube.com/watch?v=juJTjzi4DV0","https://www.youtube.com/watch?v=J26zmN2xgRI","https://www.youtube.com/watch?v=iWOHUiGwnPE","https://www.youtube.com/watch?v=uOsZiIhyxVM"]
     if n==1:
         term = "信義 房屋"
-        whitelist = ["https://www.youtube.com/watch?v=7UGiKEc2JEU","https://www.youtube.com/watch?v=By63yTOiPFQ","https://www.youtube.com/watch?v=QzyTD949cVk","https://www.youtube.com/watch?v=WC_rYXVP2g8","https://www.youtube.com/watch?v=9lJ3gnqMT4o","https://www.youtube.com/watch?v=iA4__EcJE5I","https://www.youtube.com/watch?v=fx4fTBh9PFo","https://www.youtube.com/watch?v=WC_rYXVP2g8","https://www.youtube.com/watch?v=juJTjzi4DV0","https://www.youtube.com/watch?v=D9A8S1XaPnA","https://www.youtube.com/watch?v=tbdpEt65LRI","https://www.youtube.com/watch?v=Z4mts-HrBvU"]
+        whitelist = ["https://www.youtube.com/watch?v=7UGiKEc2JEU","https://www.youtube.com/watch?v=J_3FkWnoKX8","https://www.youtube.com/watch?v=By63yTOiPFQ","https://www.youtube.com/watch?v=QzyTD949cVk","https://www.youtube.com/watch?v=WC_rYXVP2g8","https://www.youtube.com/watch?v=9lJ3gnqMT4o","https://www.youtube.com/watch?v=fx4fTBh9PFo","https://www.youtube.com/watch?v=JKQ4ZGEKu7c","https://www.youtube.com/watch?v=s2kwmoleE08","https://www.youtube.com/watch?v=WC_rYXVP2g8","https://www.youtube.com/watch?v=Hi-IY6R7_10","https://www.youtube.com/watch?v=DjCW-aD4TP4","https://www.youtube.com/watch?v=tbdpEt65LRI","https://www.youtube.com/watch?v=juJTjzi4DV0","https://www.youtube.com/watch?v=iWOHUiGwnPE"]
     if n==2:
         term = "信義房仲"
-        whitelist = ["https://www.youtube.com/watch?v=7UGiKEc2JEU","https://www.youtube.com/watch?v=By63yTOiPFQ","https://www.youtube.com/watch?v=QzyTD949cVk","https://www.youtube.com/watch?v=WC_rYXVP2g8","https://www.youtube.com/watch?v=9lJ3gnqMT4o","https://www.youtube.com/watch?v=iA4__EcJE5I","https://www.youtube.com/watch?v=5dpFPoatFrg","https://www.youtube.com/watch?v=Z4mts-HrBvU","https://www.youtube.com/watch?v=Hi-IY6R7_10","https://www.youtube.com/watch?v=e2jILHgLW10","https://www.youtube.com/watch?v=juJTjzi4DV0","https://www.youtube.com/watch?v=fx4fTBh9PFo","https://www.youtube.com/watch?v=tbdpEt65LRI"]
+        whitelist = ["https://www.youtube.com/watch?v=9lJ3gnqMT4o","https://www.youtube.com/watch?v=_MHzFU6pmUU","https://www.youtube.com/watch?v=Hi-IY6R7_10","https://www.youtube.com/watch?v=uOsZiIhyxVM","https://www.youtube.com/watch?v=fx4fTBh9PFo","https://www.youtube.com/watch?v=juJTjzi4DV0","https://www.youtube.com/watch?v=tbdpEt65LRI","https://www.youtube.com/watch?v=iA4__EcJE5I","https://www.youtube.com/watch?v=DjCW-aD4TP4","https://www.youtube.com/watch?v=WC_rYXVP2g8","https://www.youtube.com/watch?v=Z4mts-HrBvU","https://www.youtube.com/watch?v=1OxZNuwlUOk","https://www.youtube.com/watch?v=xoGSw4txYHA","https://www.youtube.com/watch?v=4iy450OXGyE","https://www.youtube.com/watch?v=e2jILHgLW10"]
     if n==3:
         term = "信義 房仲"
-        whitelist = ["https://www.youtube.com/watch?v=7UGiKEc2JEU","https://www.youtube.com/watch?v=By63yTOiPFQ","https://www.youtube.com/watch?v=QzyTD949cVk","https://www.youtube.com/watch?v=WC_rYXVP2g8","https://www.youtube.com/watch?v=9lJ3gnqMT4o","https://www.youtube.com/watch?v=iA4__EcJE5I","https://www.youtube.com/watch?v=fx4fTBh9PFo","https://www.youtube.com/watch?v=WC_rYXVP2g8","https://www.youtube.com/watch?v=juJTjzi4DV0","https://www.youtube.com/watch?v=D9A8S1XaPnA","https://www.youtube.com/watch?v=tbdpEt65LRI","https://www.youtube.com/watch?v=Z4mts-HrBvU","https://www.youtube.com/watch?v=Hi-IY6R7_10","https://www.youtube.com/watch?v=e2jILHgLW10"]
+        whitelist = ["https://www.youtube.com/watch?v=9lJ3gnqMT4o","https://www.youtube.com/watch?v=Hi-IY6R7_10","https://www.youtube.com/watch?v=fx4fTBh9PFo","https://www.youtube.com/watch?v=uOsZiIhyxVM","https://www.youtube.com/watch?v=_MHzFU6pmUU","https://www.youtube.com/watch?v=iWOHUiGwnPE","https://www.youtube.com/watch?v=juJTjzi4DV0","https://www.youtube.com/watch?v=tbdpEt65LRI","https://www.youtube.com/watch?v=iA4__EcJE5I","https://www.youtube.com/watch?v=WC_rYXVP2g8","https://www.youtube.com/watch?v=Z4mts-HrBvU","https://www.youtube.com/watch?v=DjCW-aD4TP4"]
     return term, random.choice(whitelist)
 
 is_confidential = 1 #set to 1 if true