Example #1
0
def generate_userdata_base64(environment, build_user):
    script = '#!/bin/bash\n\n'

    for user, info in users.items():
        if user != build_user:
            continue

        if environment not in info['environments']:
            continue
        script += 'useradd %s\n' % user
        script += 'echo "%s ALL = NOPASSWD: ALL" > /etc/sudoers.d/%s\n' % (user, user)
        script += 'chmod 440 /etc/sudoers.d/%s\n' % user
        script += 'mkdir /home/%s/.ssh\n' % user
        script += 'chown %s:%s /home/%s/.ssh\n' % (user, user, user)
        script += 'chmod 700 /home/%s/.ssh\n' % user
        script += 'touch /home/%s/.ssh/authorized_keys\n' % user
        for key in info['ssh_keys']:
            script += 'echo "%s" >> /home/%s/.ssh/authorized_keys\n' % (key, user)
            script += 'echo -e "Host github.com\\n\\tStrictHostKeyChecking no\\n" >> /home/%s/.ssh/config\n' % user
            script += 'echo -e "Host bitbucket.org\\n\\tStrictHostKeyChecking no\\n" >> /home/%s/.ssh/config\n' % user
            script += ''
        script += 'chown %s:%s /home/%s/.ssh/*\n' % (user, user, user)
        script += 'chmod 600 /home/%s/.ssh/*\n' % user

    script += 'yum update -y\n'
    script += 'resize2fs /dev/sda1\n'
    return base64.b64encode(script)
Example #2
0
        cj.load(ignore_discard=True, ignore_expires=True)
    except Exception:
        """create a cookie file"""
        cj.save(ignore_discard=True, ignore_expires=True)

    opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))

    login = lambda: login_emuch(opener, username, passwd, logger)
    enter = lambda: enter_emuch(opener, login, logger)
    creditd = lambda: (not enter()) or get_credit(opener, logger)
    cjsaved = lambda: cj.save(ignore_discard=True, ignore_expires=True)

    return [creditd, cjsaved]


def debug_log(log, file=sys.stdout):
    msg = time.strftime('%Y-%m-%d,%H:%M:%S  #  ',time.localtime(time.time())) + log
    print(msg, file=file)


if '__main__' == __name__:
    from config import users
    tasks = []
    for k, v in users.items():
        vv = mk_tasks(k, v, logger=debug_log)
        tasks.extend(vv)
    for t in tasks:
        t()


Example #3
0
    print('-' * 50)
    print(time.strftime('%y-%m-%d %H:%M:%S', time.localtime(time.time())))
    print('当前处理账户名为:{}'.format(user))
    driver = webdriver.Chrome()
    driver.get(url)
    get_mobile_code(driver, paras['mobile'], model, lb)
    find_and_fill(driver, '//*[@id="name"]', user)
    find_and_fill(driver, '//*[@id="identNo"]', paras['identNo'])
    find_and_fill(driver, '//*[@id="cardvalue0"]', paras['cardvalue0'])
    choose_bank(driver, paras['location'])
    handle_coindate(driver)
    phoneCaptchaNo = input('请输入手机验证码, 按回车键确认(如果还未收到短信,请等到短信之后再输入):\n')
    find_and_fill(driver, '//*[@id="phoneCaptchaNo"]', phoneCaptchaNo)
    find_and_click(driver, '//*[@id="infosubmit"]')
    time.sleep(2)
    # driver.close()


if __name__ == '__main__':
    print('本工具仅作为技术交流之用,请勿滥用!')
    print('目前本软件仅能实现半自动化')
    print('目前版本的软件仅支持农行预约的省份')
    print("------读取自动识别验证码模型和标签------")
    model = load_model('ABC/CaptchaHandler/output/cnn.model')
    lb = pickle.loads(
        open('ABC/CaptchaHandler/output/cnn_lb.pickle', "rb").read())
    url = input('输入本次预约界面的网址,按回车键确认:\n')
    # url = 'https://eapply.abchina.com/coin/coin/CoinRequest?issueid=I049&t=1576767405981'
    for user, paras in users.items():
        auto_work(user, paras, model, lb, url)