Пример #1
0
    def _getFriendsAllMR1(self):  # All MR
        friends_all_id = {}
        #return friends_all_id
        null = '0'
        offset = 0
        ex_fr = 0
        while ex_fr == 0:
            post = {
                'ext': '1',
                'method': 'friends.get',
                'app_id': '609744',
                'offset': str(offset),
                'session_key': self.__api_access_token
            }
            post_keys = sorted(post.keys())
            param_str = "".join([
                "%s=%s" % (str(key), vkontakte.api._encode(post[key]))
                for key in post_keys
            ])
            param_str = self.__game_api_user_id + param_str + u'5cbd867117243d62af914948498eb3de'
            sign = md5(param_str).hexdigest().lower()
            post.update({'sig': sign})
            BASE_URL = Connection('http://www.appsmail.ru/platform/api')

            resp_fr = BASE_URL.sendRequest(post,
                                           cookies=self.__session_cookies)
            while resp_fr == None:
                print u'Друзья заедают... попробуем ещё раз'
                time.sleep(0.5)
                resp_fr = BASE_URL.sendRequest(post,
                                               cookies=self.__session_cookies)
            # with open('response.txt', 'w') as f:
            # f.write(resp_fr.encode("UTF-8", "ignore"))
            add = eval(resp_fr)
            print 'load MR', len(add)
            if len(add) == 0:
                ex_fr = 1
            else:
                time.sleep(0.34)
                offset += 1000
                #friends_all_id.extend(add)
                for us in add:
                    new = {
                        u"link": us["link"],
                        u"first_name": self._correct(us["first_name"]),
                        u"last_name": self._correct(us["last_name"]),
                        u"nick": self._correct(us["nick"]),
                        u"app_installed": us["app_installed"],
                        u"last_visit": us["last_visit"]
                    }
                    friends_all_id[us["uid"]] = new
        print(u'Друзей в Моём Мире: %s' %
              str(len(friends_all_id))).encode('cp866')
        with open('statistics\\' + self.curuser + '\\friends_all_info.txt',
                  'w') as f:
            #f.write(unicode(friends_all_id))
            text = simplejson.dumps(friends_all_id, ensure_ascii=False)
            f.write(text.encode("UTF-8", "ignore"))
        return friends_all_id
Пример #2
0
 def _getFriendsListMR2(self):
     friendsid = []
     offset = 0
     while True:
         post = {
             'method': 'friends.getAppUsers',
             'app_id': 'zombieisland',
             'offset': str(offset),
             'session_key': self.__api_access_token
         }
         post_keys = sorted(post.keys())
         param_str = "".join([
             "%s=%s" % (str(key), vkontakte.api._encode(post[key]))
             for key in post_keys
         ])
         param_str = self.__game_api_user_id + param_str + 'session_key'
         sign = md5(param_str).hexdigest().lower()
         post.update({'sig': sign})
         BASE_URL = Connection('http://api.facebook.com/1.0/')
         add = eval(
             BASE_URL.sendRequest(post, cookies=self.__session_cookies))
         friendsid.extend(add)
         print 'load ', len(add)
         offset += 500
         if len(add) < 500: break
     return friendsid
Пример #3
0
    def _getFriendsListMR2(self):  # MR
        friendsid = []
        #return friendsid
        print u'Загружаем список друзей...'
        offset = 0
        while True:
            post = {
                'method': 'friends.getAppUsers',
                'app_id': '609744',
                'offset': str(offset),
                'session_key': self.__api_access_token
            }
            post_keys = sorted(post.keys())
            param_str = "".join([
                "%s=%s" % (str(key), vkontakte.api._encode(post[key]))
                for key in post_keys
            ])
            param_str = self.__game_api_user_id + param_str + u'5cbd867117243d62af914948498eb3de'
            sign = md5(param_str).hexdigest().lower()
            post.update({'sig': sign})
            BASE_URL = Connection('http://www.appsmail.ru/platform/api')

            resp_fr = BASE_URL.sendRequest(post,
                                           cookies=self.__session_cookies)
            while resp_fr == None:
                print u'Друзья заедают... попробуем ещё раз'
                time.sleep(0.5)
                resp_fr = BASE_URL.sendRequest(post,
                                               cookies=self.__session_cookies)
            add = eval(resp_fr)
            #add = eval(BASE_URL.sendRequest(post, cookies=self.__session_cookies))
            print 'load ', len(add)
            friendsid.extend(add)
            offset += 1000
            if len(add) < 1000:
                break
            else:
                time.sleep(0.34)

        friendsid = list(set(friendsid))
        print(u'Всего друзей в списке: %s' %
              str(len(friendsid))).encode('cp866')
        return friendsid
Пример #4
0
    def _getFriendsAllMR0(self):  # All MR
        friends_all_id = []
        #return friends_all_id
        offset = 0
        while True:
            post = {
                'method': 'friends.get',
                'app_id': '609744',
                'offset': str(offset),
                'session_key': self.__api_access_token
            }
            post_keys = sorted(post.keys())
            param_str = "".join([
                "%s=%s" % (str(key), vkontakte.api._encode(post[key]))
                for key in post_keys
            ])
            param_str = self.__game_api_user_id + param_str + u'5cbd867117243d62af914948498eb3de'
            sign = md5(param_str).hexdigest().lower()
            post.update({'sig': sign})
            BASE_URL = Connection('http://www.appsmail.ru/platform/api')

            resp_fr = BASE_URL.sendRequest(post,
                                           cookies=self.__session_cookies)
            while resp_fr == None:
                print u'Друзья заедают... попробуем ещё раз'
                time.sleep(0.5)
                resp_fr = BASE_URL.sendRequest(post,
                                               cookies=self.__session_cookies)
            add = eval(resp_fr)
            print 'load MR', len(add)
            friends_all_id.extend(add)
            offset += 1000
            if len(add) < 1000:
                break
            else:
                time.sleep(0.34)

        print(u'Друзей в Моём Мире: %s' %
              str(len(friends_all_id))).encode('cp866')
        with open('statistics\\' + self.curuser + 'friends_all.txt', 'w') as f:
            f.write(friends_all_id.encode("UTF-8", "ignore"))
        return friends_all_id
Пример #5
0
 def _getSessionCookies(self):
     session_cookies = ''  # self._credentials.getSessionCookies()
     cookies_are_valid = self._validateSessionCookies(session_cookies)
     if not cookies_are_valid:
         print 'Session old. Autentification...'
         username = self._credentials.getUserEmail()
         password = self._credentials.getUserPassword()
         post = {
             'act': 'login',
             'role': 'al_frame',
             'expire': '',
             'captcha_sid': '',
             'captcha_key': '',
             '_origin': 'https://vk.com',
             'email': username,
             'pass': password
         }
         vk = Connection('https://vk.com/')
         session_cookies, html = vk.sendRequest(data=None,
                                                getCookies=True,
                                                getContent=True)
         session_cookies = (
             'Cookie:' +
             session_cookies.output(attrs=[], header='', sep=';'))
         if html:
             # with open('html.txt', 'w') as f:
             # f.write(html.encode('UTF-8'))
             matcher = re.compile(
                 r'<input type="hidden" name="([^"]+)" value="([^"]*)" />')
             post.update(dict(matcher.findall(html)))
         # print 'post', post
         vk = Connection('https://login.vk.com/?act=login')
         session_cookies = vk.sendRequest(
             post, getCookies=True,
             cookies=session_cookies)  # , cookies = session_cookies
         session_cookies = (
             'Cookie:' +
             session_cookies.output(attrs=[], header='', sep=';'))
         # print session_cookies
         # self._credentials.setSessionCookies(session_cookies)
     return session_cookies
Пример #6
0
    def getAppParams(self, app_id, session_cookies=None):
        if session_cookies is None:
            session_cookies = self._getSessionCookies()
#        mr = Connection('http://my.mail.ru/apps/' + str(app_id))
#        UrlRedirect1 = mr.sendRequestNoRedirect(None, cookies=session_cookies)
#        print 'UrlRedirect 1 = ', UrlRedirect1
        mr = Connection('http://auth.mail.ru/sdc')
        data = {'from': 'http://my.mail.ru/apps/609744'}
        UrlRedirect2 = mr.sendRequestNoRedirect(data, cookies=session_cookies)
        #        print 'UrlRedirect 2 = ', UrlRedirect2
        mr = Connection('http://my.mail.ru/sdc')
        #        data = {'token':UrlRedirect2[28:]}
        data = {'token': UrlRedirect2.split('=')[1]}
        #        print 'data-token = ', data
        #        self.__tokenMR = UrlRedirect2.split('=')[1]
        session_cookies3 = mr.sendRequestNoRedirect(data,
                                                    cookies=session_cookies,
                                                    getCookies=True)
        #        print 'session_cookies3 = ', session_cookies3

        session_cookies_sdc = (session_cookies3.output(attrs=[],
                                                       header='',
                                                       sep=';'))
        #        print 'session_cookies_sdc = ', session_cookies_sdc
        session_cookies += ('; ' + session_cookies_sdc)
        self.__session_cookies = session_cookies
        #        self._credentials.setSessionCookies(session_cookies)

        mr = Connection('http://my.mail.ru/apps/' + str(app_id))
        html = mr.sendRequest(None, cookies=session_cookies)
        params = None
        if html:
            #open('html.txt', 'a').write(html.encode('utf-8'))
            matcher = re.compile('.*zombiefarm.html\?(.*?)"')
            for line in html.split('\n'):
                match = matcher.match(line)
                if match is not None:
                    params = match.group(1)
                    break
            if params is not None:
                pairs = params.split('&')
                params = {}
                for pair in pairs:
                    key = pair.split('=')[0]
                    value = pair.split('=')[1]
                    params[key] = value
                    #print key, value
        return params
Пример #7
0
 def getAppParams2(self, params):
     post = {
         'signed_request': params['key'],
         'fb_locale': 'ru_RU',
     }
     mr = Connection(
         'https://zombie-fb.shadowlands.ru/zombiefb/?fb_source=appcenter&fb_appcenter=1'
     )
     html = mr.sendRequest(post, None)
     if html:
         myFile = open('_html_ap2.html', 'wb')
         myFile.write(html.encode("utf-8"))
         myFile.close()
     v = html.find('flashvars')
     f = html.find("key:'", v)
     if f > 0: f = f + 5
     t = html.find("'", f)
     if f > 0 and t > 0: params['key'] = html[f:t]
     f = html.find("auth:'", v)
     if f > 0: f = f + 6
     t = html.find("'", f)
     if f > 0 and t > 0: params['auth'] = html[f:t]
     return params
Пример #8
0
 def getAppParams(self, app_id, session_cookies=None):
     if session_cookies is None:
         session_cookies = self._getSessionCookies()
     vk = Connection('https://vk.com/app' + str(app_id))
     html = vk.sendRequest(None, cookies=session_cookies)
     #open('html.tmp','w').write(html.encode('utf-8'))
     params = None
     if html:
         matcher = re.compile('.*var params = (.*);$')
         for line in html.split('\n'):
             match = matcher.match(line)
             if match is not None:
                 params = match.group(1)
                 break
         if params is not None:
             #print json.loads(params)
             #return json.loads(params)
             try:
                 return json.loads(params)
             except:
                 print 'Vk auth failed for app%s' % app_id
                 return None
     return params
Пример #9
0
 def _validateSessionCookies(self, session_cookies):
     valid = False
     if session_cookies is not None:
         mr = Connection('http://my.mail.ru/apps/609744')
         html = mr.sendRequest(None, cookies=session_cookies)
         params = None
         if html:
             #open('html.txt', 'a').write(html.encode('utf-8'))
             matcher = re.compile('.*zombiefarm.html\?(.*?)"')
             for line in html.split('\n'):
                 match = matcher.match(line)
                 if match is not None:
                     params = match.group(1)
                     break
             if params is not None:
                 pairs = params.split('&')
                 params = {}
                 for pair in pairs:
                     key = pair.split('=')[0]
                     value = pair.split('=')[1]
                     params[key] = value
                     #print key, value
         valid = params is not None
     return valid