@@ -53,6 +53,7 @@ class Client(object):
|
|||||||
self._session = requests.session()
|
self._session = requests.session()
|
||||||
self.req_counter = 1;
|
self.req_counter = 1;
|
||||||
self.payloadDefault={}
|
self.payloadDefault={}
|
||||||
|
self.client = 'mercury'
|
||||||
|
|
||||||
if not user_agent:
|
if not user_agent:
|
||||||
user_agent = choice(USER_AGENTS)
|
user_agent = choice(USER_AGENTS)
|
||||||
@@ -122,12 +123,15 @@ class Client(object):
|
|||||||
self.ttstamp = ''
|
self.ttstamp = ''
|
||||||
|
|
||||||
r = self._get('https://www.facebook.com/')
|
r = self._get('https://www.facebook.com/')
|
||||||
self.payloadDefault['__rev']= int(r.text.split('"revision":',1)[1].split(",",1)[0])
|
|
||||||
self.payloadDefault['__user']= self.uid
|
|
||||||
|
|
||||||
soup = bs(r.text, "lxml")
|
soup = bs(r.text, "lxml")
|
||||||
self.fb_dtsg = soup.find("input", {'name':'fb_dtsg'})['value']
|
self.fb_dtsg = soup.find("input", {'name':'fb_dtsg'})['value']
|
||||||
self._setttstamp()
|
self._setttstamp()
|
||||||
|
# Set default payload
|
||||||
|
self.payloadDefault['__rev']= int(r.text.split('"revision":',1)[1].split(",",1)[0])
|
||||||
|
self.payloadDefault['__user']= self.uid
|
||||||
|
self.payloadDefault['__a']= '1'
|
||||||
|
self.payloadDefault['ttstamp']= self.ttstamp
|
||||||
|
self.payloadDefault['fb_dtsg']= self.fb_dtsg
|
||||||
|
|
||||||
self.form = {
|
self.form = {
|
||||||
'channel' : self.user_channel,
|
'channel' : self.user_channel,
|
||||||
@@ -165,7 +169,6 @@ class Client(object):
|
|||||||
'context' : "search",
|
'context' : "search",
|
||||||
'path' : "/home.php",
|
'path' : "/home.php",
|
||||||
'request_id' : str(uuid1()),
|
'request_id' : str(uuid1()),
|
||||||
'__a' : '1',
|
|
||||||
}
|
}
|
||||||
|
|
||||||
r = self._get(SearchURL, payload)
|
r = self._get(SearchURL, payload)
|
||||||
@@ -186,10 +189,7 @@ class Client(object):
|
|||||||
timestamp = now()
|
timestamp = now()
|
||||||
date = datetime.now()
|
date = datetime.now()
|
||||||
data = {
|
data = {
|
||||||
'client' : 'mercury',
|
'client' : self.client,
|
||||||
'fb_dtsg' : self.fb_dtsg,
|
|
||||||
'ttstamp' : self.ttstamp,
|
|
||||||
'__a' : '1',
|
|
||||||
'message_batch[0][action_type]' : 'ma-type:user-generated-message',
|
'message_batch[0][action_type]' : 'ma-type:user-generated-message',
|
||||||
'message_batch[0][author]' : 'fbid:' + str(self.uid),
|
'message_batch[0][author]' : 'fbid:' + str(self.uid),
|
||||||
'message_batch[0][specific_to_list][0]' : 'fbid:' + str(thread_id),
|
'message_batch[0][specific_to_list][0]' : 'fbid:' + str(thread_id),
|
||||||
@@ -225,16 +225,13 @@ class Client(object):
|
|||||||
:param start: the start index of a thread
|
:param start: the start index of a thread
|
||||||
:param end: (optional) the last index of a thread
|
:param end: (optional) the last index of a thread
|
||||||
"""
|
"""
|
||||||
if not end:
|
if not end: end = start + 20
|
||||||
end = start + 20
|
if end <= start: end=start+end
|
||||||
|
|
||||||
timestamp = now()
|
timestamp = now()
|
||||||
date = datetime.now()
|
date = datetime.now()
|
||||||
data = {
|
data = {
|
||||||
'client' : 'web_messenger',
|
'client' : self.client,
|
||||||
'fb_dtsg' : self.fb_dtsg,
|
|
||||||
'ttstamp' : self.ttstamp,
|
|
||||||
'__a' : '1',
|
|
||||||
'inbox[offset]' : start,
|
'inbox[offset]' : start,
|
||||||
'inbox[limit]' : end,
|
'inbox[limit]' : end,
|
||||||
}
|
}
|
||||||
|
@@ -1,8 +1,10 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
import sys
|
||||||
|
|
||||||
class Base():
|
class Base():
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return self.__unicode__().encode('utf-8')
|
uni = self.__unicode__()
|
||||||
|
return uni.encode('utf-8') if sys.version_info < (3, 0) else uni
|
||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
return u'<%s %s (%s)>' % (self.type.upper(), self.name, self.url)
|
return u'<%s %s (%s)>' % (self.type.upper(), self.name, self.url)
|
||||||
@@ -16,8 +18,7 @@ class User(Base):
|
|||||||
self.photo = data['photo']
|
self.photo = data['photo']
|
||||||
self.url = data['path']
|
self.url = data['path']
|
||||||
self.name = data['text']
|
self.name = data['text']
|
||||||
#self.score = jsoin['score']
|
self.score = data['score']
|
||||||
#self.tokens = data['tokens']
|
|
||||||
|
|
||||||
self.data = data
|
self.data = data
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user