Пример #1
0
def getNewLotteryList(lastActivityNo=''):
    api = HOST + 'feed?LastActivityNo=' + lastActivityNo
    response = get(api, headers=getHeaders(), verify=False)
    if response['Status'] == 0:
        lotteryList = response['LotteryActivityList']
        if not lotteryList is None:
            unJoinList = list(
                filter(lambda lottery: lottery['JoinState'] != 'JOIN',
                       lotteryList)) or []
            global shouldGetMore
            if len(unJoinList) == 0:
                if shouldGetMore:
                    getNewLotteryList(lotteryList[-1]['ActivityNo'])
                return
            successCount = 0
            for item in unJoinList:
                result = joinLotery(item['ActivityNo'])
                if result == 1:  #成功
                    successCount += 1
                elif result == 3:  #被限制
                    shouldGetMore = False
                    Logger.v('今日头条全民抽奖完成,共成功参与{}次抽奖'.format(successCount))
                    break
                else:  #未知原因失败了
                    continue
            if shouldGetMore:
                getNewLotteryList(lotteryList[-1]['ActivityNo'])
            else:
                shouldGetMore = True
        else:
            Logger.e('今日头条全民抽奖失败', '未获取到小抽奖列表')
    else:
        Logger.n('今日头条全民抽奖失败', '获取抽奖列表失败,' + response['Msg'])
Пример #2
0
def getMovies():
    url = 'http://maoyan.com/board/7'
    headers = {
        'User-Agent':
        'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
    }
    dataNum = time.strftime('%Y年%m月%d日', time.localtime(time.time()))

    response = get(url, headers=headers, text=True)
    result1 = re.findall(
        '<p class="name"><a href="(.*?)" title="(.*?)" data-act="boarditem-click" data-val=".*?">.*?</a></p>.*?<p class="star">\s+(.*?)\s+</p>.*?<p class="releasetime">(.*?)</p>    </div>.*?<div class="movie-item-number score-num">.*?<p class="score"><i class="integer">(.*?)</i><i class="fraction">(.*?)</i></p>        ',
        response, re.S)
    resultStr = dataNum + '最新电影排行\n===========================\n'
    n = 1
    for i in result1:
        resultStr += '★第' + str(n) + '位 '
        resultStr += i[1] + ' '
        resultStr += i[4] + i[5] + '\n'
        resultStr += i[2] + '\n'
        resultStr += 'http://maoyan.com' + i[0] + '\n'
        resultStr += i[3] + '\n'
        n += 1
        if (n > 10):
            # 展示前五个电影
            break
    resultStr += '===========================\n'
    resultStr += time.strftime('%H:%M:%S', time.localtime(
        time.time())) + ' from maoyan.com'
    return resultStr
Пример #3
0
def getMoreChance():
    api = HOST + 'query-activity-task'
    response = get(api, headers=getHeaders(), verify=False)
    if response['Code'] == '0':
        taskList = response['TaskInfos']
        if not taskList is None:
            if len(taskList) == 0:
                Logger.v('今日头条全民抽奖增加次数失败:没有可以完成的任务')
                return
            successCount = 0
            for item in taskList:
                rewardCount = int(item['RewardChance'])
                times = 5
                id = item['TaskNo']
                for i in range(0, times):
                    time.sleep(3)
                    if _finishTask(id):
                        successCount += rewardCount
                    else:
                        break
                    time.sleep(5)
            Logger.v('今日头条全民抽奖成功增加%d次数' % successCount)
        else:
            Logger.v('今日头条全民抽奖增加次数失败:没有可以完成的任务')
    else:
        Logger.e('今日头条全民抽奖增加次数失败', '未获取到任务列表')
Пример #4
0
def getWechatUser(openId):
    accessToken = Tocken().get_access_token()
    postUrl = (
        "https://api.weixin.qq.com/cgi-bin/user/info?access_token=%s&openid=%s&lang=zh_CN"
        % (accessToken, openId))
    result = get(postUrl)
    return result
Пример #5
0
def getBigLotteryList():
    api = HOST + 'feed?ActivityShowType=LBIGIMAGE'
    response = get(api, headers=getHeaders(), verify=False)
    if response['Status'] == 0:
        lotteryList = response['LotteryActivityList']
        if not lotteryList is None:
            unJoinList = list(
                filter(lambda lottery: lottery['JoinState'] != 'JOIN',
                       lotteryList)) or []
            if len(unJoinList) == 0:
                Logger.e('今日头条全民大抽奖', '没有未参加的大抽奖项目')
            else:
                successCount = 0
                for item in unJoinList:
                    result = joinLotery(item['ActivityNo'])
                    if result == 1:
                        successCount += 1
                    elif result == 3:
                        Logger.v('今日头条全民大抽奖完成,共成功参与{}次抽奖'.format(successCount))
                        break
                    else:
                        continue
        else:
            Logger.e('今日头条全民大抽奖失败', '未获取到大抽奖列表')
    else:
        Logger.n('今日头条全民大抽奖失败', '获取大抽奖列表失败,' + response['Msg'])
Пример #6
0
def getSmallLotteryListAndJoin():
    api = HOST + 'index?gzh_number=&type=1'
    response = get(api, headers=getHeaders(), verify=False)
    lotteryList = response.get('data', {}).get('self_help_welfare')
    if lotteryList is None:
        Logger.e('微信活动抽奖失败', '未获取到大抽奖列表')
    else:
        joinLoterryOneByOne(lotteryList)
Пример #7
0
def _finishTask(id):
    api = HOST + 'finish-task-callback?TaskNo=' + id + '&Code=0'
    response = get(api, headers=getHeaders(), verify=False)
    if response['Code'] == '0':
        return True
    else:
        Logger.e('今日头条全民抽奖完成任务' + id + '失败:', response['Msg'])
        return False
Пример #8
0
def getBigLotteryListAndJoin():
    global TOKEN
    api = HOST + 'v2/sponsor/daily?access_token=' + TOKEN + '&from=1'
    response = get(api, headers=getHeaders(), verify=False)
    lotteryList = response.get('data', {}).get('lotto')
    if lotteryList is None:
        Logger.e('微信抽奖工具失败', '未获取到大抽奖列表')
    else:
        joinLoterryOneByOne(lotteryList)
Пример #9
0
def getServerIp():
    res = ['','','','']
    data = {'token':'70e91cd606375f987931b47290923d51'}
    url = r'http://api.ip138.com/query/'
    
    result = get(url,data)
    res[0] = result['ip']
    res[1] = result['data'][0]
    res[2] = result['data'][1] + result['data'][2] + result['data'][3]
    options = res[0] + '\n'+ res[2]
    return options
Пример #10
0
def getGoodList():
    res = get(url, verify=False)
    all = res['floors']
    now = []
    nowMain = all[0]['data']['result']['goods_list']
    for good1 in nowMain:
        now.append(good1)
    nowOther = all[1]['data']['result']['goods_list']
    for good2 in nowOther:
        now.append(good2)
    return _toString(now)
Пример #11
0
def judgeIfIsJoined(productid):
    time.sleep(1)
    global headers
    headers['Content-Type'] = 'application/json'
    headers['Content-Length'] = None
    api = HOST + 'bytyluck.ashx?action=ProductDec&productid={}&sessionUserId={}'
    response = get(api.format(productid, SESSION_ID),
                   headers=headers,
                   verify=False)
    if not response['cdrr'] is None:
        return response['cdrr']['IsPartake'] == 1
    return False
Пример #12
0
def getBigLotteryList():
    api = HOST + 'bytyluck.ashx?action=StickProduct'
    data = {'PrizeId': 0}
    response = get(api, data=data, headers=headers, verify=False)
    if not response['cdrr'] is None:
        lotteryList = response['cdrr']['a_welfare_Product']
        if not lotteryList is None:
            tryToLotteryList(lotteryList, '大抽奖')
        else:
            Logger.e('今日头条天天抽奖失败', '未获取到大抽奖列表')
    else:
        Logger.n('今日头条天天抽奖失败', '获取大抽奖列表失败,' + response['msg'])
Пример #13
0
def getMoreAndJoin(next):
    Logger.v('微信抽奖助手获取下一页:' + next)
    api = HOST.replace('lottery/', next)
    response = get(api, headers=getHeaders(), verify=False)
    squareList = response.get('square')
    if squareList is None:
        Logger.e('微信抽奖助手抽奖失败', '未获取到小抽奖列表')
    else:
        joinLoterryOneByOne(squareList)
    next = response.get('links', {}).get('next')
    if not next is None:
        getMoreAndJoin(next)
Пример #14
0
def watchWeather():
    Logger.v('开始查询最近天气')
    adr = getAdress()
    if adress is None:
       Logger.e('获取本机地址信息失败','可能是网络问题或接口不可用')
    city = adr['city'] or '洪山区'
    if not city is None:
       res = get(WEATHER_API+city)
       forecasts = res['data']['forecasts']
       result = city + '有异常天气预警:\n'
       for index in range(0, len(forecasts)):
           if index == 0 or index > 2:
              continue
           forecast = forecasts[index]
           date = forecast['date']
           dayWeather = forecast['dayWeather']
           nightWeather = forecast['nightWeather']
           dayTemp = forecast['dayTemp']
           nightTemp = forecast['nightTemp']
           dayWindDirection = forecast['dayWindDirection']
           dayWindPower = forecast['dayWindPower']
           def formatWeather():
              return '白天:'+dayWeather+\
                          ',温度:'+dayTemp+\
                        ',夜间:'+nightWeather+\
                          ',温度:'+nightTemp+\
                          ','+dayWindDirection+\
                          '风:'+dayWindPower+\
                            '.\n'
           if index == 1:
              date = '明天'
           elif index == 2:
              date = '后天'
           weather = ''
           if '雨' in dayWeather or '雪' in dayWeather or '雹' in dayWeather:
              weather += date+'白天天气异常:'+dayWeather+'.'
           if '雨' in nightWeather or '雪' in nightWeather or '雹' in nightWeather:
              weather += date+'夜间天气异常:'+nightWeather+'.'
           try:
              if int(dayTemp.split('℃')[0]) < 0 or int(dayTemp.split('℃')[0]) > 35:
                  weather += date+'白天有高温或低温:'+dayTemp+'.'
              if int(dayWindPower.split('级')[0]) > 5:
                  weather += date+'白天有大风:'+dayWindPower+'.'
           except Exception as e:
              Logger.e('天气数据解析错误',e)
           if len(weather) > 0:
              result += weather+date +'详细天气:'+formatWeather()
       if len(result) > 15:
           result += '请注意防范!\n'
           Logger.v('有异常天气!'+result)
           voice(result)
       else:
           Logger.v('未发现异常天气')
Пример #15
0
def getSmallLotteryListAndJoin(page=1):
    Logger.v('微信抽奖工具小抽奖获取第{}页'.format(page))
    global TOKEN
    api = HOST + 'v1/self/list?access_token=' + TOKEN + '&page={}'.format(page)
    response = get(api, headers=getHeaders(), verify=False)
    lotteryList = response.get('data')
    if lotteryList is None:
        Logger.e('微信抽奖工具失败', '未获取到小抽奖列表')
    else:
        if len(lotteryList) != 0:
            joinLoterryOneByOne(lotteryList)
            getSmallLotteryListAndJoin(page + 1)
Пример #16
0
def joinLotery(productid):
    time.sleep(1)
    global headers
    headers['Content-Type'] = 'application/json'
    headers['Content-Length'] = None
    api = HOST + 'bytyluck.ashx?action=JoinPartake&productid={}&sessionUserId={}'
    response = get(api.format(productid, SESSION_ID),
                   headers=headers,
                   verify=False)
    if response['result'] == "1":
        return True
    else:
        Logger.e('今日头条天天抽奖失败', response['msg'])
        return False
Пример #17
0
    def api_raw (self, action, args = {}, req = 'post', user = None,
                 format = 'json'):
        """Make API request.

Wiki.api_raw(action, args = {}, req = 'get'[, user], format = 'json') -> page

action: 'action' parameter.
args: arguments to send to the API.
req: 'get', 'post' or 'httppost'.
user: user to perform the request as (defaults to the active user); if there is
      no active user, no cookie is used (anonymous request).
format: 'format' parameter.

"""
        enc = lambda s: s.encode('utf-8') if isinstance(s, unicode) else s
        urlenc = lambda d: urlencode(dict((enc(k), enc(v))
                                          for k, v in d.iteritems()))

        try:
            c = self._cookie(user)
        except Exception:
            c = None
        if req == 'get':
            GET = args
            POST = {}
        else: # req == *'post':
            GET = {}
            POST = args
        GET['action'] = action
        GET['format'] = format
        url = 'http://{0}?{1}'.format(self.api_url, urlenc(GET))
        httppost = req == 'httppost'
        if httppost:
            POST = [(str(k), v if isinstance(v, (list, tuple)) else str(v))
                    for k, v in POST.iteritems()]
        else:
            POST = urlenc(POST)
        data = get(url, POST, c, c, httppost = httppost, info = True)
        page, code, real_url = data
        if real_url != url:
            # got redirected: POST might not work properly, so fix self.url
            base = 'http://' + self.url
            if real_url.endswith(url[len(base):]):
                self.url = self._fix_url(real_url[:len(base) - len(url)])
                self.api_url = self.url + '/api.php'
        return page
Пример #18
0
def getLotteryListAndJoin():
    api = HOST + 'public'
    response = get(api, headers=getHeaders(), verify=False)
    pubicList = response['public']
    if pubicList is None:
        Logger.e('微信抽奖助手抽奖失败', '未获取到大抽奖列表')
    else:
        joinLoterryOneByOne(pubicList)
    squareList = response['square']
    if squareList is None:
        Logger.e('微信抽奖助手抽奖失败', '未获取到小抽奖列表')
    else:
        joinLoterryOneByOne(squareList)
    next = response['links']['next']
    if not next is None:
        getMoreAndJoin(next)
    global joinedCount
    Logger.v('微信抽奖助手抽奖完毕:共成功参与{}次抽奖'.format(joinedCount))
    joinedCount = 0
Пример #19
0
def translate(txt):
    url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
    data = {
        'from':'AUTO',
        'to':'AUTO',
        'smartresult':'dict',
        'client':'fanyideskweb',
        'salt':'1500092479607',
        'sign':'c98235a85b213d482b8e65f6b1065e26',
        'doctype':'json',
        'version':'2.1',
        'keyfrom':'fanyi.web',
        'action':'FY_BY_CL1CKBUTTON',
        'typoResult':'false',
        'i':txt
        }
    result = get(url,data)
    res = '翻译结果:%s '% (result['translateResult'][0][0]['tgt'])
    return res
Пример #20
0
    def api_raw(self, action, args={}, req='post', user=None, format='json'):
        """Make API request.

Wiki.api_raw(action, args = {}, req = 'get'[, user], format = 'json') -> page

action: 'action' parameter.
args: arguments to send to the API.
req: 'get', 'post' or 'httppost'.
user: user to perform the request as (defaults to the active user); if there is
      no active user, no cookie is used (anonymous request).
format: 'format' parameter.

"""
        try:
            c = self._cookie(user)
        except Exception:
            c = None
        if req == 'get':
            GET = args
            POST = {}
        else:  # req == *'post':
            GET = {}
            POST = args
        GET['action'] = action
        GET['format'] = format
        url = 'http://{0}?{1}'.format(self.api_url, urlencode(GET))
        httppost = req == 'httppost'
        if httppost:
            POST = [(str(k), v if isinstance(v, (list, tuple)) else str(v))
                    for k, v in POST.iteritems()]
        else:
            POST = urlencode(POST)
        data = get(url, POST, c, c, httppost=httppost, info=True)
        page, code, real_url = data
        if real_url != url:
            # got redirected: POST might not work properly, so fix self.url
            base = 'http://' + self.url
            if real_url.endswith(url[len(base):]):
                self.url = self._fix_url(real_url[:len(base) - len(url)])
                self.api_url = self.url + '/api.php'
        return page
Пример #21
0
# V0.0.1 测试版
# JSON参数(此版本处理的):
# {
#   target_url: string,    fetch的网址7
#   priority: int          优先级
# }

import time
from fetch import get

while True:
    get('http://www.freebuf.com/')
    time.sleep(600)
Пример #22
0
def getSSQResult(number=None):
    API = HOST + ('/lottery/ssq/aim_lottery?expect={}'.format(number)
                  if not number is None else '/lottery/ssq/latest')
    result = get(API)
    return result['data']['openCode']
Пример #23
0
def tree_from_url (url, verbose = False):
    """Convenience function: return an HTMLTree instance for a given URL."""
    return HTMLTree(get(url), verbose)
Пример #24
0
 def get_current_selfmenu_info(self, accessToken):
     postUrl = "https://api.weixin.qq.com/cgi-bin/get_current_selfmenu_info?access_token=%s" % accessToken
     result = get(postUrl)
     print('get_current_selfmenu_info:', result)
Пример #25
0
 def delete(self, accessToken):
     postUrl = "https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=%s" % accessToken
     result = get(postUrl)
     print('delete:', result)
Пример #26
0
 def query(self, accessToken):
     postUrl = "https://api.weixin.qq.com/cgi-bin/menu/get?access_token=%s" % accessToken
     result = get(postUrl)
     print('query:', result)
Пример #27
0
def getAdress():
    global adress
    if adress is None:
       res = get(IP_TO_ADRESS_API)
       adress = res['data']
    return adress