コード例 #1
0
 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")
コード例 #2
0
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
コード例 #3
0
 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
コード例 #4
0
 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)
コード例 #5
0
    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
コード例 #6
0
    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
コード例 #7
0
    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
コード例 #8
0
    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
コード例 #9
0
    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)
コード例 #10
0
    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)
コード例 #11
0
 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)
コード例 #12
0
 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
コード例 #13
0
 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)
コード例 #14
0
 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
コード例 #15
0
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)
コード例 #16
0
 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)
コード例 #17
0
ファイル: servers.py プロジェクト: levixie/Dashboard
 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()
コード例 #18
0
 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
コード例 #19
0
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
コード例 #20
0
    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
コード例 #21
0
 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
コード例 #22
0
ファイル: ospf_net.py プロジェクト: atani20/Computer_Network
    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)
コード例 #23
0
 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
コード例 #24
0
 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)
コード例 #25
0
 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)
コード例 #26
0
ファイル: cluster.py プロジェクト: xFelipe/load_balancer
    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
コード例 #27
0
 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)
コード例 #28
0
ファイル: httpd.py プロジェクト: nicholas-sokolov/custom_http
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')
コード例 #29
0
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)
コード例 #30
0
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):