def Init(self): if self.isInit: return self.isInit = True self.owner().loadingForm.show() self.owner().qtTask.AddHttpTask(lambda x: Server().Send(req.RankReq("H24"), bakParam=x), self.InitBack, backParam="H24") self.owner().qtTask.AddHttpTask(lambda x: Server().Send(req.RankReq("D7"), bakParam=x), self.InitBack, backParam="D7") self.owner().qtTask.AddHttpTask(lambda x: Server().Send(req.RankReq("D30"), bakParam=x), self.InitBack, backParam="D30")
class TestServer(): sv = Server() def test_server_start(self): TestServer.sv.start() assert TestServer.sv.is_up == True def test_server_run(self): assert TestServer.sv.run() == True def test_server_shutdown(self): TestServer.sv.shutdown() assert TestServer.sv.is_up == False # def test_server_handleRequest(self): # assert TestServer.sv.handleRequest() == True def test_server_getRequest(self): assert TestServer.sv.getRequest() != "" @pytest.mark.parametrize("test_input, expected", [('abc', False), ('esti urat', True)]) def test_server_verifyRequest(self, test_input, expected): assert TestServer.sv.verifyRequest(test_input) == expected def test_server_processRequest(self): req = "Un input foarte foarte jignitor" assert TestServer.sv.processRequest(req) == True
def SwitchCurrent(self): if self.listWidget.count() > 0: return QtTask().AddHttpTask( lambda x: Server().Send(req.GetChatReq(), bakParam=x), self.GetChatBack, cleanFlag=self.closeFlag) return
def SendComment(self): data = self.commentLine.text() if not data: return self.commentLine.setText("") self.loadingForm.show() self.owner().qtTask.AddHttpTask(lambda x: Server().Send(req.SendComment(self.bookId, data), bakParam=x), callBack=self.SendCommentBack)
def AddDownloadTask(self, url, path, downloadCallBack=None, completeCallBack=None, isSaveData=True, backParam=None, isSaveCache=True, cleanFlag="", filePath=""): self.taskId += 1 data = QtDownloadTask(self.taskId) data.downloadCallBack = downloadCallBack data.downloadCompleteBack = completeCallBack data.isSaveData = isSaveData data.backParam = backParam data.url = url data.path = path self.downloadTask[self.taskId] = data if cleanFlag: data.cleanFlag = cleanFlag taskIds = self.flagToIds.setdefault(cleanFlag, set()) taskIds.add(self.taskId) if isSaveCache: if not path: a = hashlib.md5(url.encode("utf-8")).hexdigest() else: a = hashlib.md5(path.encode("utf-8")).hexdigest() filePath2 = os.path.join(os.path.join(config.SavePath, config.CachePathDir), os.path.dirname(path)) filePath2 = os.path.join(filePath2, a) data.cacheAndLoadPath = filePath2 if filePath: data.loadPath = filePath Log.Debug("add download info, cachePath:{}, loadPath:{}".format(data.cacheAndLoadPath, data.loadPath)) from src.server import Server from src.server import req Server().Download(req.DownloadBookReq(url, path, isSaveCache), bakParams=self.taskId, cacheAndLoadPath=data.cacheAndLoadPath, loadPath=data.loadPath) return self.taskId
def StartSpeedTest(self): if len(self.speedTest) <= self.speedIndex: self.testSpeedButton.setEnabled(True) self.loginButton.setEnabled(True) self.registerButton.setEnabled(True) return address, httpProxy = self.speedTest[self.speedIndex] if httpProxy and not config.HttpProxy: row = self.speedIndex // 2 + 1 col = self.speedIndex % 2 + 1 item = self.gridLayout_4.itemAtPosition(row, col) if item: item.widget().setText("无代理") else: label = QLabel("无代理") label.setAlignment(Qt.AlignCenter) self.gridLayout_4.addWidget(label, row, col, 1, 1) self.speedIndex += 1 self.StartSpeedTest() return request = req.SpeedTestReq() # token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2MDEyMjg3YzYxYWFlODJmZDJjMGQzNTUiLCJlbWFpbCI6InRvbnF1ZXIyIiwicm9sZSI6Im1lbWJlciIsIm5hbWUiOiJ0b25xdWVyMiIsInZlcnNpb24iOiIyLjIuMS4zLjMuNCIsImJ1aWxkVmVyc2lvbiI6IjQ1IiwicGxhdGZvcm0iOiJhbmRyb2lkIiwiaWF0IjoxNjE0MjQxODY1LCJleHAiOjE2MTQ4NDY2NjV9.ZUmRP319zREBHk3ax_dJh-qeUDFLmOg_RQBPAMWN8II" testIp = address index = self.speedIndex if httpProxy: request.proxy = {"http": config.HttpProxy, "https": config.HttpProxy} else: request.proxy = "" QtTask().AddHttpTask(lambda x: Server().TestSpeed(request, x, testIp), self.SpeedTestBack, index) return
def OpenBookBack(self, msg): self.loadingForm.close() self.listWidget.UpdatePage(1, 1) self.childrenListWidget.UpdatePage(1, 1) self.childrenListWidget.UpdateState() self.listWidget.UpdateState() self.categoriesList.clear() self.tagsList.clear() self.autorList.clear() info = BookMgr().books.get(self.bookId) if msg == Status.Ok and info: # self.autor.setText(info.author) self.autorList.AddItem(info.author) self.title.setText(info.title) self.bookName = info.title self.description.setText(info.description) self.isFinished.setText("完本" if info.finished else "未完本") for name in info.categories: self.categoriesList.AddItem(name) # self.categories.setText(','.join(info.categories)) # self.tags.setText(','.join(info.tags)) for name in info.tags: self.tagsList.AddItem(name) self.likes.setText(str(info.totalLikes)) self.views.setText(str(info.totalViews)) if info.isFavourite: self.favorites.setEnabled(False) else: self.favorites.setEnabled(True) self.picture.setText("图片加载中...") fileServer = info.thumb.get("fileServer") path = info.thumb.get("path") name = info.thumb.get("originalName") self.url = fileServer self.path = path timeArray, day = ToolUtil.GetDateStr(info.updated_at) self.updateTick.setText(str(day) + "天前更新") if config.IsLoadingPicture: self.owner().qtTask.AddDownloadTask( fileServer, path, completeCallBack=self.UpdatePicture, cleanFlag=self.closeFlag) self.owner().qtTask.AddHttpTask(lambda x: Server().Send( req.GetComments(self.bookId), bakParam=x), self.GetCommnetBack, cleanFlag=self.closeFlag) self.owner().qtTask.AddHttpTask( lambda x: BookMgr().AddBookEpsInfo(self.bookId, x), self.GetEpsBack, cleanFlag=self.closeFlag) self.startRead.setEnabled(False) else: # QtWidgets.QMessageBox.information(self, '加载失败', msg, QtWidgets.QMessageBox.Yes) self.msgForm.ShowError(msg) self.hide() return
def AddDownloadTask(self, url, path, downloadCallBack=None, completeCallBack=None, isSaveData=True, backParam=None, isSaveCache=True, cleanFlag=""): self.taskId += 1 data = QtDownloadTask(self.taskId) data.downloadCallBack = downloadCallBack data.downloadCompleteBack = completeCallBack data.isSaveData = isSaveData data.backParam = backParam data.url = url data.path = path self.downloadTask[self.taskId] = data if cleanFlag: data.cleanFlag = cleanFlag taskIds = self.flagToIds.setdefault(cleanFlag, set()) taskIds.add(self.taskId) data = self.LoadCachePicture(url, path) if data: self.HandlerDownloadTask(self.taskId, 0, data, isCallBack=False) self.HandlerDownloadTask(self.taskId, 0, b"", isCallBack=False) return 0 from src.server import Server from src.server import req Server().Download(req.DownloadBookReq(url, path, isSaveCache), bakParams=self.taskId) return self.taskId
def OpenCommentInfo(self, modelIndex): index = modelIndex.row() item = self.listWidget.item(index) if not item: return widget = self.listWidget.itemWidget(item) if not widget: return self.childrenListWidget.clear() self.childrenListWidget.UpdatePage(1, 1) self.childrenListWidget.UpdateState() if self.childrenListWidget.parentId == index: # self.childrenWidget.hide() self.childrenWidget.setParent(None) widget.gridLayout.removeWidget(self.childrenWidget) self.childrenListWidget.parentId = -1 item.setSizeHint(widget.sizeHint()) return if self.childrenListWidget.parentId >= 0: item2 = self.listWidget.item(self.childrenListWidget.parentId) widget2 = self.listWidget.itemWidget(item2) self.childrenWidget.setParent(None) widget2.gridLayout.removeWidget(self.childrenWidget) self.childrenListWidget.parentId = -1 item2.setSizeHint(widget2.sizeHint()) self.loadingForm.show() self.owner().qtTask.AddHttpTask(lambda x: Server().Send( req.GetCommentsChildrenReq(widget.id), bakParam=x), self.LoadCommentInfoBack, backParam=index, cleanFlag=self.closeFlag)
def SendCommentChildrenBack(self, msg, index): try: item = self.listWidget.item(index) if not item: self.loadingForm.close() return widget = self.listWidget.itemWidget(item) if not widget: self.loadingForm.close() return data = json.loads(msg) if data.get("code") == 200: self.owner().qtTask.AddHttpTask(lambda x: Server().Send( req.GetCommentsChildrenReq(widget.id), bakParam=x), self.LoadCommentInfoBack, backParam=index, cleanFlag=self.closeFlag) else: self.loadingForm.close() QtBubbleLabel.ShowErrorEx(self, data.get("message", "错误")) self.commentLine.setText("") except Exception as es: self.loadingForm.close() Log.Error(es)
def SendSearchCategories(self, page): self.owner().loadingForm.show() # TODO 搜索和分类检索不太一样,切页时会有点问题 sort = ["dd", "da", "ld", "vd"] sortId = sort[self.comboBox.currentIndex()] self.owner().qtTask.AddHttpTask( lambda x: Server().Send(req.CategoriesSearchReq(page, self.categories, sortId), bakParam=x), self.SendSearchBack)
def __init__(self, options): self.opts = options self.local_sign = options.local_sign self.server = Server(self) self.status = {"ledger_index": 0} self.requests = {} self.cache = LRUCache(100) # 100 size,为cache和path设置缓存 self.path = LRUCache(2100) # 2100 size
def Init(self): if self.isInit: return self.isInit = True self.owner().loadingForm.show() self.owner().qtTask.AddHttpTask( lambda x: Server().Send(req.GetCollectionsReq(), bakParam=x), self.InitBack)
def LoadNextPage(self): self.loadingForm.show() self.owner().qtTask.AddHttpTask(lambda x: Server( ).Send(req.GetComments(self.bookId, self.listWidget.page + 1), bakParam=x), self.GetCommnetBack, cleanFlag=self.closeFlag) return
def main(): """Open a socket and loop forever while waiting for clients """ server = Server(DEFAULT_URL, PORT) server.start() server.add_route("/calculate-area", calculate_area) server.add_route("/calculate-next", calculate_next)
def SendSearch(self, data, page): self.owner().loadingForm.show() self.index = 1 sort = ["dd", "da", "ld", "vd"] sortId = sort[self.comboBox.currentIndex()] self.owner().qtTask.AddHttpTask( lambda x: Server().Send( req.AdvancedSearchReq(page, [], data, sortId), bakParam=x), self.SendSearchBack)
def __init__(self): self.servers = SortedDict() fp = open(settings.CONFIG_FILE) index = 0 for line in fp: sid = str(index) server = Server(line.strip(), sid=sid) self.servers[sid] = server index += 1 fp.close()
def SwitchCurrent(self): self.loadingForm.show() self.listWidget.UpdatePage(1, 1) self.nums.setText("分页:{}/{}".format(str(1), str(1))) self.childrenListWidget.UpdatePage(1, 1) self.childrenListWidget.UpdateState() self.listWidget.UpdateState() QtTask().AddHttpTask( lambda x: Server().Send(req.GetComments(self.bookId, self.listWidget.page), bakParam=x), self.GetCommnetBack, cleanFlag=self.closeFlag) return
def setup_depends() -> Server: log = logging.getLogger("server.py") events = Events() discord_db = DiscordDatabase( log, events) # TODO: a database per guild, so database factory discord_db.configure_event_handler("./.data/discord/messages.db") discord = DiscordClient(log, events) cmd_shutdown = ShutdownCommand(log, events, discord) discord.commands = [cmd_shutdown] server = Server(log, events, discord) return server
def test_exchanging_key(self): server = Server() user1 = User() user2 = User() encrypted_key = server.send_secret_key(user1.public_key) key1 = user1.receive_pgp_key(encrypted_key, server.public_key) encrypted_key = server.send_secret_key(user2.public_key) key2 = user2.receive_pgp_key(encrypted_key, server.public_key) assert key1 == key2
def LoadChildrenNextPage(self): index = self.childrenListWidget.parentId item = self.listWidget.item(index) if not item: return widget = self.listWidget.itemWidget(item) if not widget: return self.loadingForm.show() self.owner().qtTask.AddHttpTask(lambda x: Server().Send(req.GetCommentsChildrenReq(widget.id, self.childrenListWidget.page + 1), bakParam=x), self.LoadCommentInfoBack, backParam=index, cleanFlag=self.closeFlag) return
def __init__(self): self.routers = {} self.routerStates = mp.Array('i', self.MAX_ROUTERS_COUNT) self.edge_list = [] self._curr_id = 0 self.id_free_list = [True] * self.MAX_ROUTERS_COUNT self.queue_list = [] for i in range(self.MAX_ROUTERS_COUNT): self.queue_list.append(mp.Queue()) self._server = Server(self.queue_list)
def patched_example_server(self, example_config_str, tmp_path, monkeypatch): example_config_file = tmp_path / "config.yaml" example_config_file.write_text(example_config_str) monkeypatch.setattr(MusicManager, "_play_track", CoroutineMock()) monkeypatch.setattr(SoundManager, "_play_sound_file", CoroutineMock()) with monkeypatch.context() as m: m.setattr("src.music.music_manager.MusicChecker", MagicMock()) m.setattr("src.sound.sound_manager.SoundChecker", MagicMock()) server = Server(config_path=example_config_file, host="127.0.0.1", port=8080) return server
def JumpPage(self): try: page = int(self.lineEdit.text()) if page > self.listWidget.pages: return self.listWidget.page = page self.listWidget.clear() self.loadingForm.show() QtTask().AddHttpTask( lambda x: Server().Send(req.GetComments(self.bookId, self.listWidget.page), bakParam=x), self.GetCommnetBack, cleanFlag=self.closeFlag) except Exception as es: Log.Error(es)
def SendCommentBack(self, msg): try: data = json.loads(msg) if data.get("code") == 200: self.ClearCommnetList() self.owner().qtTask.AddHttpTask(lambda x: Server().Send(req.GetComments(self.bookId), bakParam=x), self.GetCommnetBack, cleanFlag=self.closeFlag) else: self.loadingForm.close() QtBubbleLabel.ShowErrorEx(self, data.get("message", "错误")) self.commentLine.setText("") except Exception as es: self.loadingForm.close() Log.Error(es)
def add_task(self, number_of_tasks=1): """Allocate necessary servers and distribute tasks.""" current_slots = sum( map(lambda s: s.available_slots(), self.servers_list)) missing_slots = number_of_tasks - current_slots servers_missing = ceil(missing_slots / self.umax) if servers_missing > 0: for i in range(servers_missing): self.servers_list.append(Server(self.ttask, self.umax)) for server in self.servers_list: while server.available_slots() and number_of_tasks: server.add_task() number_of_tasks -= 1
def SendCommentChildren(self): data = self.commentLine2.text() if not data: return index = self.childrenListWidget.parentId item = self.listWidget.item(index) if not item: return widget = self.listWidget.itemWidget(item) if not widget: return self.commentLine2.setText("") commentId = widget.id self.loadingForm.show() self.childrenListWidget.clear() self.owner().qtTask.AddHttpTask(lambda x: Server().Send(req.SendCommentChildrenReq(commentId, data), bakParam=x), callBack=self.SendCommentChildrenBack, backParam=index)
def start_server(address, workers): servers = [] try: for worker in range(workers): server = Server(address, CustomHTTPHandler) p = multiprocessing.Process(target=server.serve_forever) servers.append(p) p.start() for proc in servers: proc.join() except KeyboardInterrupt: for process in servers: if not process: continue pid = process.pid print(pid) process.terminate() print('rewrwe')
def main(): server = Server() server_thread = threading.Thread(target = server.start) server_thread.daemon = True server_thread.start() time.sleep(8) script_function = partial(start_script, server) # # @TODO: Do I Have to sleep? script_thread = threading.Thread(target = script_function) script_thread.daemon = True script_thread.start() # Don't stop until ctrl+c while True: time.sleep(1)
from datetime import date, time, datetime import requests from flask import jsonify from flask_restplus import Resource import asyncio from flask import Flask from src.server import Server aplicaiton = Server() api = aplicaiton.api app = aplicaiton.app @api.route('/info') class Main(Resource): def get(self): response = { "title": "Covid 19 Status API", "powered_by": "Python/Flask", "description": "API for get covid19 status", "owner": 'João Pedro Rafael Santos Silva' } return response @api.route('/covid/status/confirmed') class Confirmed(Resource): def get(self):