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
示例#2
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")
示例#3
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
示例#4
0
    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)
示例#5
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
示例#6
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)
示例#7
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
示例#8
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
示例#9
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
    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
示例#11
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
    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)
示例#14
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)
示例#15
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)
 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
示例#17
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)
示例#18
0
class TestSocketServer(unittest.TestCase):
    def setUp(self):
        self.host = "127.0.0.1"
        self.port = 1111
        self.server = Server(self.host, self.port)
        self.loop = asyncio.get_event_loop()
        self.server.start(self.loop)

    def test_init_server(self):
        self.assertEqual(self.server.host, "127.0.0.1")
        self.assertEqual(self.server.port, 1111)

    def test_server_is_running(self):
        self.assertTrue(is_server_running(self.host, self.port))

    def tearDown(self):
        self.server.close()
        if self.loop.is_running():
            self.loop.close()
示例#19
0
 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()
示例#20
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
示例#21
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
示例#22
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
示例#23
0
class Node(object):
    server: Server
    networkInfo: NetworkInfo = NetworkInfo()
    data_node: DataNode

    def __init__(self, port, size_acceptance, directory):
        self.networkInfo = NetworkInfo()
        self.data_node = DataNode(directory)
        # запуск серверва
        self.server = Server(port, self.networkInfo, self.data_node, size_acceptance)
        self.server.start()

    # подключение к сети
    def connect_network(self, addr):
        if connect_net(addr):
            self.networkInfo.new_node(addr)

    # получение списка доступных файлов
    def get_list_file_on_node(self, addr):
        return get_list_file_on_node(addr)

    # получение списка адресов узла
    def get_list_addr_on_node(self, addr):
        return get_list_addr_on_node(addr)

    # получить файл filename по адресу addr, порт приема free_port
    def get_file_on_node(self, addr, filename, free_port):
        get_file_on_node(addr, filename, self.data_node.directory, free_port)

    # список подключенных узлов
    def get_list_connect_addr(self):
        self.check_connect_addr()
        return self.networkInfo.node_addr

    # проверка подключенных узлов
    def check_connect_addr(self):
        for addr in self.networkInfo.node_addr:
            if not connect_net(addr):
                self.networkInfo.node_addr.discard(addr)
示例#24
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
示例#25
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)
示例#26
0
    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 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)
示例#28
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)
示例#29
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)
示例#30
0
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')
示例#31
0
import numpy as np
import os, sys
sys.path.insert(0, os.path.pardir)
import src.helpers as lib
from src.server import Server
from src.fcfs import FCFS
from src.rr import RR
from src.cgc import CGC

"""Emptying the system"""
Distribution = 'p'
Q = [[0] * 4, [0] * 12, [0] * 12]
N = 7
A = [0, 0, 0]
I = 3
C = 6

fcfs = Server(C, I)
fcfs.Q = list(Q)
rr = Server(C, I)
rr.Q = list(Q)
cgc = Server(C, I)
cgc.Q = list(Q)

for n in range(N):
    RR(rr, A, n)
    print('RR', 'Period:', n, 'Capacity:', rr.c, 'Queue:', rr.Q, 'Results:', rr.R)

示例#32
0
from src.queue import Request
from src.server import Server
import socket

# vytvoreni a serializace zpravy
r = Request()
r.method = "shutdown"
msg = r.serialize()

# hlavicka zpravy
msgData = Server.writeHeader(msg)

# odeslani pozadavku na server
s = socket.socket()

s.connect(("127.0.0.1", 53535))
s.send(msgData)
s.close()
示例#33
0
import os, sys
sys.path.insert(0, os.path.pardir)
import src.helpers as lib
from src.server import Server
from src.rr import RR
from src.cgc import CGC

A = [1, 10, 13]
c = 26
I = 3

print('discipline, capacity, R, expected, valid, CGC rule')

Q = [[0] * 1, [0] * 10, [0] * 16]
e = [1, 10, 15]
s = Server(c, I)
s.Q = list(Q)
RR(s, A, 0)
print('RR', c, s.R, e, s.R == e, s.rule)

Q = [[0] * 2, [0] * 11, [0] * 14]
e = [2, 10, 14]
s = Server(c, I)
s.Q = list(Q)
CGC(s, A, 0)
print('CGC', c, s.R, e, s.R == e, s.rule)