作者 lemon

修复上报bug

... ... @@ -21,7 +21,7 @@ monitor.version = settings.get_version()
def server_replace(ws_url):
'''新开一个socket尝试连接新地址,存储在临时变量里'''
monitor._temp_socket = MessageSocketClient(connect_success, message_receive)
monitor._temp_socket.connect(ws_url, reconnect=False) # 失败不重试
monitor._temp_socket.connect(ws_url, monitor._name, monitor._imei, reconnect=False) # 失败不重试
def message_receive(message):
... ... @@ -71,5 +71,7 @@ def connect_success(sock):
def run():
socket = MessageSocketClient(connect_success, message_receive)
socket.connect(**settings.get_server())
conf = settings.get_server()
conf.update({'url': monitor._host, 'name': monitor._name, 'uuid': monitor._imei})
socket.connect(**conf)
ioloop.IOLoop.instance().start()
... ...
... ... @@ -12,6 +12,7 @@ from concurrent.futures import ThreadPoolExecutor
from munch import Munch
from conf import settings
from core import callback, command
from lib import control_server
from lib.common import TaskStatus
... ... @@ -33,13 +34,14 @@ class Monitor(callback.CallBack):
self._listenlist = dict()
self._imei = Config.get('imei', lambda: uuid.uuid1().hex)
self._name = Config.get('name', control_server.get_init_name)
self._host = None
self.version = '1.0.0'
self._host = Config.get('host', lambda: settings.get_server()['url'])
self.version = None
self.executor = ThreadPoolExecutor(50, 'task_thread')
self.init_config = {}
def bind(self, socket):
self._socket = socket
Config.set('host', self._socket.ws_url)
def _auto_login(self):
user_list = UserList.query(status=Status.ONLINE)
... ...
... ... @@ -30,7 +30,7 @@ def post_terminal_info(name, source_ws, num, version):
data['ip'] = _host
print(data)
try:
r = requests.post(SERVER + '/post_terminal_info', data, timeout=1)
r = requests.post(SERVER + '/post_terminal_info', json=data, timeout=1)
new_ws = r.json().get('data', {}).get('ws', source_ws)
except:
new_ws = source_ws
... ...
... ... @@ -80,7 +80,7 @@ class PCState(State):
user_id = get_user_id(session)
r = session.get(_util.prefix_url("/"),timeout=10)
r = session.get(_util.prefix_url("/"), timeout=10)
b = parse_html.show_home_page(r.text)
logout_menu = b.find('div', id='logoutMenu')
... ... @@ -451,15 +451,16 @@ class FacebookClient(Client):
:return (ID,Name)
'''
total_ids = []
ids, names, gender = [], [], []
res = []
while True:
if not (ids or names):
ids, names, gender = self._pymk_request(total_ids)
if not res:
res = self._pymk_request(total_ids)
ids = [x['fbid'] for x in res]
total_ids.extend(ids)
if not ids:
return
sub = (ids.pop(0), names.pop(0), gender.pop(0))
sub = res.pop(0)
yield sub
def _pymk_request(self, total_ids: list):
... ... @@ -527,17 +528,20 @@ class FacebookClient(Client):
'''发出的加好友请求'''
url = None
empty = False
ids, names = [], []
res = []
while True:
if not (ids or names):
if not res:
if empty:
return
ids, names, url = self._outgoingRequest(url)
res, url = self._outgoingRequest(url)
if not url:
empty = True
sub = (ids.pop(0), names.pop(0))
yield sub
if not res:
empty = True
else:
sub = res.pop(0)
yield sub
def _outgoingRequest(self, url=None, require_gender=True):
if url:
... ... @@ -713,3 +717,18 @@ class FacebookClient(Client):
def get_user_agent(self):
return self._state._session.headers.get('User-Agent', random.choice(_util.USER_AGENTS))
def searchForUserByFilter(self, name=None, city=None):
url = 'https://www.facebook.com/search/top/'
data = {'q': 'angel',
'ref': 'side_filter',
'epa': 'FILTERS',
'filters': 'eyJycF9sb2NhdGlvbiI6IntcIm5hbWVcIjpcImxvY2F0aW9uXCIsXCJhcmdzXCI6XCIxMDYyNjI4ODI3NDU2OThcIn0ifQ==',
'ajaxpipe': '1',
'ajaxpipe_token': 'AXjhI9q4VDQji6Ox',
'quickling[version]': '1001720869;0;'
}
# f = furl.furl(url).add(data)
# print(f.url)
res=self._state._get('https://www.facebook.com/search/people/?q=angel&epa=FILTERS&filters=eyJjaXR5Ijoie1wibmFtZVwiOlwidXNlcnNfbG9jYXRpb25cIixcImFyZ3NcIjpcIjEwNjI2Mjg4Mjc0NTY5OFwifSJ9&ref=side_filter',{})
print(res)
\ No newline at end of file
... ...
... ... @@ -42,6 +42,8 @@ class WebSocketClient(object):
self._connect_status = self.CONNECTING
headers = httputil.HTTPHeaders({
'Clientname': self._clientname,
'ClientUUID': self._clientuuid,
'Content-Type': APPLICATION_JSON,
'Origin': '*',
})
... ... @@ -145,10 +147,13 @@ class MessageSocketClient(WebSocketClient):
self.server_replace(ws_url)
self._later_handler['move_server'] = self._io_loop.call_later(random.randint(30, 30), self.auto_move_server)
def connect(self, url, reconnect=True, reconnect_interval=3):
def connect(self, url, name, uuid, reconnect=True, reconnect_interval=3):
self.ws_url = url
self.auto_reconnet = reconnect
self.reconnect_interval = reconnect_interval
self._clientname=name
self._clientuuid=uuid
super(MessageSocketClient, self).connect(self.ws_url)
def on_connection_success(self):
... ...