Exemple #1
0
 def testClient(self):
     cls = Client('127.0.0.1/leo', keysPath + 'leo.pem')
     cls.setHttpOpt({'timeout': 2})
     assert str(cls).startswith('''['ok', ['apiEcho',''')
     self.assertRaises(core.client.RpcApiNotFound, str, cls.abc)
     assert str(cls.apiEcho) == '''{'doc': 'For test.', 'params': ['msg'], 'name': 'apiEcho'}'''
     self.assertRaises(core.client.RpcBadParams, cls.apiEcho)
    def run():
        logger.debug('going to say hi to err1')
        player = Player()
        client = Client()
        entity_list = client.get_entity_list()

        original_coords = deepcopy(player.position)
        for entity in entity_list:
            MovementEngine.teleport_to(entity.position)
            time.sleep(0.75)
        MovementEngine.teleport_to(original_coords)
        logger.debug('homie im hon')
Exemple #3
0
 def _get_client_id(self, client: Client) -> int:
     if self._client_id_cache is None:
         with Session() as sess:
             self._client_id_cache = {
                 Client.FromJSON(row.data): row.id
                 for row in sess.query(DBClient).all()
             }
     if client not in self._client_id_cache:
         with Session() as sess:
             dbobj = DBClient(data=Client.ToJSON(client))
             sess.add(dbobj)
             sess.flush()
             self._client_id_cache[client] = dbobj.id
     return self._client_id_cache[client]
Exemple #4
0
def _m_cvr(sess, trid, *args):
    v = args[5]
    sess.client = Client(
        'msn', v,
        'gw' if isinstance(sess, session.PollingSession) else 'direct')
    sess.send_reply('CVR', trid, v, v, v, 'https://escargot.log1p.xyz',
                    'https://escargot.log1p.xyz')
Exemple #5
0
def login(token, i):

    clients.append(Client(client_behavior, actions_data))
    clients_loop.append(get_event_loop())
    clients_loop[i].create_task(start(clients[i], token))
    clients_thread.append(
        Thread(target=run_it_forever, args=(clients_loop[i], )))
    clients_thread[i].start()
Exemple #6
0
def get_nearest_enemy():
    player = Player()
    client = Client()

    # Exclude mobs this much higher/lower than you
    MAX_LVL = 1
    MIN_LVL = 2

    # Gets all entities loaded in memory, <= 63
    entity_list = client.get_entity_list()

    min_dist = float('inf')
    nearest_enemy = None

    for entity in entity_list:
        # Skip dead ones
        if not entity.parameters.current_hp:
            continue

        # if entity.level < player.level - MIN_LVL:
        #     continue

        if entity.level > player.level + MAX_LVL:
            continue

        distance = None
        try:
            distance = MovementEngine.get_2d_distance(
                player.position, entity.position
            )
        except Exception:
            import ipdb; ipdb.set_trace()

        if distance < min_dist:
            nearest_enemy = entity
            min_dist = distance

    assert nearest_enemy, 'Found no enemies :"('
    logger.info(
        'Nearest enemy: Lvl. %d %s, Address: %s',
        nearest_enemy.level,
        nearest_enemy.name,
        hex(nearest_enemy.address)
    )
    return nearest_enemy
Exemple #7
0
    def __init__(self, reportAttachment=lambda atchs: None, parent=None, id=-1, title='PypMsg: New Message', show=False):
        self.scanner = Scanner(Scanner.CLIENT)
        self.client = Client(reportAttachment)
        self.userList = []

        wx.Frame.__init__(self, parent, id, title, size=(450,300))

        panel = wx.Panel(self, -1)

        #self.hostCtrl = wx.TextCtrl(panel)
        self.messCtrl = wx.TextCtrl(panel, style=wx.TE_MULTILINE | wx.VSCROLL)

        fgs = wx.FlexGridSizer(rows = 2, cols = 2, vgap = 7, hgap = 15)
        fgs.AddMany([
        #            (wx.StaticText(panel, label='Host IP')),
        #            (self.hostCtrl, 1, wx.EXPAND),
                     (wx.StaticText(panel, label='Message')),
                     (self.messCtrl, 1, wx.EXPAND)
                     ])
        #fgs.AddGrowableRow(1, 1)
        fgs.AddGrowableCol(1, 1)

        self.atchList = wx.ListCtrl(panel, style=wx.LC_LIST)
        dp = AttachmentDropTarget(self.onDropFiles)
        self.atchList.SetDropTarget(dp)
        remAtchBtn = wx.Button(panel, label='&Remove')
        remAtchBtn.Bind(wx.EVT_BUTTON, self.remAttachment)
        sendBtn = wx.Button(panel, label='&Send')
        sendBtn.Bind(wx.EVT_BUTTON, self.sendMsg)
        refreshBtn = wx.Button(panel, label='Re&fresh')
        refreshBtn.Bind(wx.EVT_BUTTON, lambda event: self.reloadMembers())

        self.memList = lists.PListCtrl(panel)
        self.memList.InsertColumn(0, 'User Name')
        self.memList.InsertColumn(1, 'Address')

        vbox2 = wx.BoxSizer(wx.VERTICAL)
        vbox2.Add(self.memList, 1, wx.EXPAND)
        vbox2.Add(fgs, 0, wx.EXPAND | wx.TOP, 10)

        vbox1 = wx.BoxSizer(wx.VERTICAL)
        vbox1.Add(wx.StaticText(panel, label='Attachments:'), 0, wx.EXPAND | wx.BOTTOM, 5)
        vbox1.Add(self.atchList, 1, wx.EXPAND | wx.ALL)
        vbox1.Add(remAtchBtn, 0, wx.EXPAND | wx.TOP, 10)
        vbox1.Add(refreshBtn, 0, wx.EXPAND | wx.TOP, 10)
        vbox1.Add(sendBtn, 0, wx.EXPAND | wx.TOP, 10)

        hbox = wx.BoxSizer()
        hbox.Add(vbox2, 1, wx.EXPAND | wx.ALL, 15)
        hbox.Add(vbox1, .2, wx.EXPAND | wx.TOP | wx.BOTTOM | wx.RIGHT, 15)

        panel.SetSizer(hbox)

        if show:
            self.Show()
            self.reloadMembers()
Exemple #8
0
def register_client():
	form = RegisterClientForm()
	if form.validate_on_submit():
		client = Client.create(form.username.data, form.email.data, form.password.data)
		login_user(client)

		next = request.args.get('next')
		return redirect(next)

	return render_template('register_client.html', form=form)
Exemple #9
0
def login_client():
	form = LoginClientForm()
	if form.validate_on_submit():
		client = Client.get_by_credential(form.email.data, form.password.data)
		login_user(client, remember=form.remember.data)

		next = request.args.get('next')
		return redirect(next)

	return render_template('login_client.html', form=form)
Exemple #10
0
    def run():
        logger.debug('script started')

        client = Client()

        while True:
            last_cmd = client.last_cmd + ''
            if '/save' in last_cmd:
                name = last_cmd[6:]
                save_location(name)
            elif '/load' in last_cmd:
                name = last_cmd[6:]
                load_location(name)
            time.sleep(1 / 1000)
Exemple #11
0
def _m_ver(sess, trid, *args):
    dialects = [a.upper() for a in args]
    d = None
    for d in MSNP_DIALECTS:
        if d in dialects: break
    if d not in dialects:
        sess.send_reply('VER', trid, 0, *MSNP_DIALECTS)
        return
    sess.state.dialect = int(d[4:])
    # For older clients that don't do a CVR
    sess.client = Client(
        'msn', d,
        'gw' if isinstance(sess, session.PollingSession) else 'direct')
    sess.send_reply('VER', trid, d)
Exemple #12
0
    def run(self):
        conf = Configger(f'./data/{self.account}')
        client = Client.create_from_conf(conf)
        following_currently = client.get_following()
        follower_currently = client.get_follower()
        follower_checker = Checker(conf.follower, follower_currently)
        following_checker = Checker(conf.following, following_currently)

        message = follower_checker.create_message_follower(
        ) + following_checker.create_message_following()
        if message != '':
            client.send_direct_message(client.api.me().id, message)
            conf.update('following', following_currently)
            conf.update('follower', follower_currently)
            conf.store()
Exemple #13
0
    def __init__(self, logger: Logger, via: str, backend: Backend) -> None:
        self.logger = logger
        self.reader = IRCReader(logger)
        self.writer = IRCWriter(logger)
        self.peername = ('0.0.0.0', 6667)
        self.close_callback = None
        self.closed = False
        self.transport = None

        self.backend = backend
        self.bs = None
        self.client = Client('irc', '?', via)
        self.password = None
        self.username = None
        self.chat_sessions = {}
Exemple #14
0
def run():  #主文件

    user_obj = Client()
    user_obj.login()  #用户登录验证
    while True:  # 用户选项交互
        for index, opt in enumerate(user_obj.user_menu, 1):
            print('%d.%s' % (index, opt[0]))
        user_choice = input('>>:').strip()
        if user_choice == 'q':  #单独处理退出函数
            user_obj.quit_handle()
            break
        if not user_choice.isdigit() or int(user_choice) <= 0 or int(
                user_choice) > len(user_obj.user_menu):
            print('输入错误,请重新输入!!')
            continue
        cmd = getattr(user_obj, user_obj.user_menu[int(user_choice) -
                                                   1][1])()  # 通过用户交互得到命令
        if not cmd:
            continue
        user_obj.exec_command(cmd)  # 将命令传给处理函数
        print('-' * 20)
Exemple #15
0
    def login(self):
        # 判断失败次数是否小于等于最大失败次数
        while self.auth_dic['failures'] <= self.auth_dic['maximum']:
            username = input('请输入登录用户名: ').strip()
            if not username:
                print(Prompt.display('用户名不能为空!', 'red'))
                continue
            password = input('请输入登录密码: ').strip()
            if not password:
                print(Prompt.display('密码不能为空!', 'red'))
                continue

            # 判断用户名和密码是否一致
            res = Client('').login_auth(username, password)

            if res:
                print(Prompt.display('登陆成功!', 'green'))
                Logger.logger.info('%s 登陆成功' % username)
                # 修改初始变量
                self.auth_dic['username'] = username
                self.auth_dic['status'] = True
                # self.auth_dic['color'] = res['color']
                # return {'username': username, 'color': res['color']}  # 返回字典给调用者
                return username
            else:
                chance = self.auth_dic['maximum'] - self.auth_dic[
                    'failures']  # 剩余失败次数
                print(Prompt.display('用户或密码错误,请重新输入!您还有%s次机会!' % chance,
                                     'red'))
                self.auth_dic['failures'] += 1  # 失败次数加1
                Logger.logger.info(
                    '%s 登陆失败%s次' %
                    (username, self.auth_dic['maximum'] - chance))

            # 判断失败次数大于最大次数时,直接退出!
            if self.auth_dic['failures'] > self.auth_dic['maximum']:
                self.auth_dic['flag'] = False
                return False
Exemple #16
0
class ClientWin(wx.Frame):
    def __init__(self, reportAttachment=lambda atchs: None, parent=None, id=-1, title='PypMsg: New Message', show=False):
        self.scanner = Scanner(Scanner.CLIENT)
        self.client = Client(reportAttachment)
        self.userList = []

        wx.Frame.__init__(self, parent, id, title, size=(450,300))

        panel = wx.Panel(self, -1)

        #self.hostCtrl = wx.TextCtrl(panel)
        self.messCtrl = wx.TextCtrl(panel, style=wx.TE_MULTILINE | wx.VSCROLL)

        fgs = wx.FlexGridSizer(rows = 2, cols = 2, vgap = 7, hgap = 15)
        fgs.AddMany([
        #            (wx.StaticText(panel, label='Host IP')),
        #            (self.hostCtrl, 1, wx.EXPAND),
                     (wx.StaticText(panel, label='Message')),
                     (self.messCtrl, 1, wx.EXPAND)
                     ])
        #fgs.AddGrowableRow(1, 1)
        fgs.AddGrowableCol(1, 1)

        self.atchList = wx.ListCtrl(panel, style=wx.LC_LIST)
        dp = AttachmentDropTarget(self.onDropFiles)
        self.atchList.SetDropTarget(dp)
        remAtchBtn = wx.Button(panel, label='&Remove')
        remAtchBtn.Bind(wx.EVT_BUTTON, self.remAttachment)
        sendBtn = wx.Button(panel, label='&Send')
        sendBtn.Bind(wx.EVT_BUTTON, self.sendMsg)
        refreshBtn = wx.Button(panel, label='Re&fresh')
        refreshBtn.Bind(wx.EVT_BUTTON, lambda event: self.reloadMembers())

        self.memList = lists.PListCtrl(panel)
        self.memList.InsertColumn(0, 'User Name')
        self.memList.InsertColumn(1, 'Address')

        vbox2 = wx.BoxSizer(wx.VERTICAL)
        vbox2.Add(self.memList, 1, wx.EXPAND)
        vbox2.Add(fgs, 0, wx.EXPAND | wx.TOP, 10)

        vbox1 = wx.BoxSizer(wx.VERTICAL)
        vbox1.Add(wx.StaticText(panel, label='Attachments:'), 0, wx.EXPAND | wx.BOTTOM, 5)
        vbox1.Add(self.atchList, 1, wx.EXPAND | wx.ALL)
        vbox1.Add(remAtchBtn, 0, wx.EXPAND | wx.TOP, 10)
        vbox1.Add(refreshBtn, 0, wx.EXPAND | wx.TOP, 10)
        vbox1.Add(sendBtn, 0, wx.EXPAND | wx.TOP, 10)

        hbox = wx.BoxSizer()
        hbox.Add(vbox2, 1, wx.EXPAND | wx.ALL, 15)
        hbox.Add(vbox1, .2, wx.EXPAND | wx.TOP | wx.BOTTOM | wx.RIGHT, 15)

        panel.SetSizer(hbox)

        if show:
            self.Show()
            self.reloadMembers()

    def sendMsg(self, event):
        if not self.memList.GetSelectedItemCount():
            wx.MessageDialog(None, 'Please select recipient user(s) from the user list',
                            'Attachment', wx.OK | wx.ICON_EXCLAMATION | wx.CENTRE).ShowModal()
            return
        nextSel = self.memList.GetNextSelected(-1)
        while nextSel != -1:
            self.client.sendMsg(self.memList.GetItem(nextSel, col=1).GetText(), self.messCtrl.GetValue())
            nextSel = self.memList.GetNextSelected(nextSel)
        self.Close()

    def reloadMembers(self):
        print 'reloading members in the list'
        self.memList.DeleteAllItems()
        self.scanner.scan(self.userHandler)

    def onDropFiles(self, filenames):
        for file in filenames:
            self.addAttachment(file)

    def addAttachment(self, atch):
        atchStatus = self.client.addAttachment(atch)
        if 'Success' in atchStatus:
            self.atchList.Append([atch])
        else:
            wx.MessageDialog(None, atchStatus, 'Attachment',
                            wx.OK | wx.ICON_EXCLAMATION | wx.CENTRE).ShowModal()

    def remAttachment(self, event):
        atch = self.atchList.GetNextSelected(-1)
        if not atch >= 0:
            wx.MessageDialog(None, 'Please select an attachment from the list to be removed.',
                            'Attachment', wx.OK | wx.ICON_EXCLAMATION | wx.CENTRE).ShowModal()
            return
        remStatus = self.client.remAttachment(self.atchList.GetItemText(atch))
        if 'Success' in remStatus:
            self.atchList.DeleteItem(atch)
        else:
            wx.MessageDialog(None, remStatus, 'Attachment', wx.OK | wx.ICON_EXCLAMATION | wx.CENTRE).ShowModal()

    def userHandler(self, username, address):
        self.memList.Append([username, address])
Exemple #17
0
from core.session import Session, SessionState
from core.client import Client
from core.models import Substatus, Lst
from core import event

CLIENT = Client('testbot', '0.1')
BOT_EMAIL = '*****@*****.**'

def register(loop, backend):
	state = Bot_NS_SessState(backend)
	sess = DirectSession(state)
	sess.client = CLIENT
	backend.login_IKWIAD(sess, BOT_EMAIL)
	backend.me_update(sess, { 'substatus': Substatus.NLN })
	
	user = sess.user
	uuid = backend.util_get_uuid_from_email('*****@*****.**')
	if uuid not in user.detail.contacts:
		backend.me_contact_add(sess, uuid, Lst.FL, "Test 1")
		backend.me_contact_add(sess, uuid, Lst.AL, "Test 1")

class DirectSession(Session):
	def send_event(self, outgoing_event):
		self.state.apply_outgoing_event(outgoing_event, self)

class Bot_NS_SessState(SessionState):
	def __init__(self, backend):
		super().__init__()
		self.backend = backend
		self.chats = []
	
Exemple #18
0
def load_user(user_id):
	return Client.get(user_id)
Exemple #19
0
def create_registry_singletons():
    # Everything here will be registered to MemoryWatch
    Player()
    Client()
Exemple #20
0
    return "ok"


def load_args():
    parser = argparse.ArgumentParser()
    parser.add_argument('--silent', action='store_true',
                        help='Logs actions instead of sending them to slack')
    parser.add_argument('--host',
                        help='Specity host for test server to listen on')
    parser.add_argument('--port',
                        help='Specity port for test server to listen on')
    return parser.parse_args()


load_features()
client = Client(slack.WebClient(token=os.getenv("SLACK_TOKEN")))
slack_connected(client)

if __name__ == "__main__":
    args = load_args()

    if (args.silent):
        client.set_silent(True)
        print("\n**************** STARTING IN SILENT MODE ****************\n")

    application.run(host=args.host, port=args.port)

client.post_message(os.getenv("PRIVATE_TEST_CHANNEL_ID"),
                    "Hello world!")
Exemple #21
0
def main():
    c = Client(configs.trainer.actions_raw, configs.trainer.routine_raw)
    c.run(configs.trainer.token, bot=False)
Exemple #22
0
    def __init__(self,
                 reportAttachment=lambda atchs: None,
                 parent=None,
                 id=-1,
                 title='PypMsg: New Message',
                 show=False):
        self.scanner = Scanner(Scanner.CLIENT)
        self.client = Client(reportAttachment)
        self.userList = []

        wx.Frame.__init__(self, parent, id, title, size=(450, 300))

        panel = wx.Panel(self, -1)

        #self.hostCtrl = wx.TextCtrl(panel)
        self.messCtrl = wx.TextCtrl(panel, style=wx.TE_MULTILINE | wx.VSCROLL)

        fgs = wx.FlexGridSizer(rows=2, cols=2, vgap=7, hgap=15)
        fgs.AddMany([
            #            (wx.StaticText(panel, label='Host IP')),
            #            (self.hostCtrl, 1, wx.EXPAND),
            (wx.StaticText(panel, label='Message')),
            (self.messCtrl, 1, wx.EXPAND)
        ])
        #fgs.AddGrowableRow(1, 1)
        fgs.AddGrowableCol(1, 1)

        self.atchList = wx.ListCtrl(panel, style=wx.LC_LIST)
        dp = AttachmentDropTarget(self.onDropFiles)
        self.atchList.SetDropTarget(dp)
        remAtchBtn = wx.Button(panel, label='&Remove')
        remAtchBtn.Bind(wx.EVT_BUTTON, self.remAttachment)
        sendBtn = wx.Button(panel, label='&Send')
        sendBtn.Bind(wx.EVT_BUTTON, self.sendMsg)
        refreshBtn = wx.Button(panel, label='Re&fresh')
        refreshBtn.Bind(wx.EVT_BUTTON, lambda event: self.reloadMembers())

        self.memList = lists.PListCtrl(panel)
        self.memList.InsertColumn(0, 'User Name')
        self.memList.InsertColumn(1, 'Address')

        vbox2 = wx.BoxSizer(wx.VERTICAL)
        vbox2.Add(self.memList, 1, wx.EXPAND)
        vbox2.Add(fgs, 0, wx.EXPAND | wx.TOP, 10)

        vbox1 = wx.BoxSizer(wx.VERTICAL)
        vbox1.Add(wx.StaticText(panel, label='Attachments:'), 0,
                  wx.EXPAND | wx.BOTTOM, 5)
        vbox1.Add(self.atchList, 1, wx.EXPAND | wx.ALL)
        vbox1.Add(remAtchBtn, 0, wx.EXPAND | wx.TOP, 10)
        vbox1.Add(refreshBtn, 0, wx.EXPAND | wx.TOP, 10)
        vbox1.Add(sendBtn, 0, wx.EXPAND | wx.TOP, 10)

        hbox = wx.BoxSizer()
        hbox.Add(vbox2, 1, wx.EXPAND | wx.ALL, 15)
        hbox.Add(vbox1, .2, wx.EXPAND | wx.TOP | wx.BOTTOM | wx.RIGHT, 15)

        panel.SetSizer(hbox)

        if show:
            self.Show()
            self.reloadMembers()
Exemple #23
0
class ClientWin(wx.Frame):
    def __init__(self,
                 reportAttachment=lambda atchs: None,
                 parent=None,
                 id=-1,
                 title='PypMsg: New Message',
                 show=False):
        self.scanner = Scanner(Scanner.CLIENT)
        self.client = Client(reportAttachment)
        self.userList = []

        wx.Frame.__init__(self, parent, id, title, size=(450, 300))

        panel = wx.Panel(self, -1)

        #self.hostCtrl = wx.TextCtrl(panel)
        self.messCtrl = wx.TextCtrl(panel, style=wx.TE_MULTILINE | wx.VSCROLL)

        fgs = wx.FlexGridSizer(rows=2, cols=2, vgap=7, hgap=15)
        fgs.AddMany([
            #            (wx.StaticText(panel, label='Host IP')),
            #            (self.hostCtrl, 1, wx.EXPAND),
            (wx.StaticText(panel, label='Message')),
            (self.messCtrl, 1, wx.EXPAND)
        ])
        #fgs.AddGrowableRow(1, 1)
        fgs.AddGrowableCol(1, 1)

        self.atchList = wx.ListCtrl(panel, style=wx.LC_LIST)
        dp = AttachmentDropTarget(self.onDropFiles)
        self.atchList.SetDropTarget(dp)
        remAtchBtn = wx.Button(panel, label='&Remove')
        remAtchBtn.Bind(wx.EVT_BUTTON, self.remAttachment)
        sendBtn = wx.Button(panel, label='&Send')
        sendBtn.Bind(wx.EVT_BUTTON, self.sendMsg)
        refreshBtn = wx.Button(panel, label='Re&fresh')
        refreshBtn.Bind(wx.EVT_BUTTON, lambda event: self.reloadMembers())

        self.memList = lists.PListCtrl(panel)
        self.memList.InsertColumn(0, 'User Name')
        self.memList.InsertColumn(1, 'Address')

        vbox2 = wx.BoxSizer(wx.VERTICAL)
        vbox2.Add(self.memList, 1, wx.EXPAND)
        vbox2.Add(fgs, 0, wx.EXPAND | wx.TOP, 10)

        vbox1 = wx.BoxSizer(wx.VERTICAL)
        vbox1.Add(wx.StaticText(panel, label='Attachments:'), 0,
                  wx.EXPAND | wx.BOTTOM, 5)
        vbox1.Add(self.atchList, 1, wx.EXPAND | wx.ALL)
        vbox1.Add(remAtchBtn, 0, wx.EXPAND | wx.TOP, 10)
        vbox1.Add(refreshBtn, 0, wx.EXPAND | wx.TOP, 10)
        vbox1.Add(sendBtn, 0, wx.EXPAND | wx.TOP, 10)

        hbox = wx.BoxSizer()
        hbox.Add(vbox2, 1, wx.EXPAND | wx.ALL, 15)
        hbox.Add(vbox1, .2, wx.EXPAND | wx.TOP | wx.BOTTOM | wx.RIGHT, 15)

        panel.SetSizer(hbox)

        if show:
            self.Show()
            self.reloadMembers()

    def sendMsg(self, event):
        if not self.memList.GetSelectedItemCount():
            wx.MessageDialog(
                None, 'Please select recipient user(s) from the user list',
                'Attachment',
                wx.OK | wx.ICON_EXCLAMATION | wx.CENTRE).ShowModal()
            return
        nextSel = self.memList.GetNextSelected(-1)
        while nextSel != -1:
            self.client.sendMsg(
                self.memList.GetItem(nextSel, col=1).GetText(),
                self.messCtrl.GetValue())
            nextSel = self.memList.GetNextSelected(nextSel)
        self.Close()

    def reloadMembers(self):
        print 'reloading members in the list'
        self.memList.DeleteAllItems()
        self.scanner.scan(self.userHandler)

    def onDropFiles(self, filenames):
        for file in filenames:
            self.addAttachment(file)

    def addAttachment(self, atch):
        atchStatus = self.client.addAttachment(atch)
        if 'Success' in atchStatus:
            self.atchList.Append([atch])
        else:
            wx.MessageDialog(None, atchStatus, 'Attachment', wx.OK
                             | wx.ICON_EXCLAMATION | wx.CENTRE).ShowModal()

    def remAttachment(self, event):
        atch = self.atchList.GetNextSelected(-1)
        if not atch >= 0:
            wx.MessageDialog(
                None,
                'Please select an attachment from the list to be removed.',
                'Attachment',
                wx.OK | wx.ICON_EXCLAMATION | wx.CENTRE).ShowModal()
            return
        remStatus = self.client.remAttachment(self.atchList.GetItemText(atch))
        if 'Success' in remStatus:
            self.atchList.DeleteItem(atch)
        else:
            wx.MessageDialog(None, remStatus, 'Attachment', wx.OK
                             | wx.ICON_EXCLAMATION | wx.CENTRE).ShowModal()

    def userHandler(self, username, address):
        self.memList.Append([username, address])
Exemple #24
0
                        default=8080,
                        help="server port",
                        dest="port")

    return parser.parse_args()


if __name__ == "__main__":
    type, port = attrgetter("type", "port")(parse_args())
    host = "localhost"

    def close_after_sigint(resource):
        def signal_handler(sig, frame):
            print("You pressed Ctrl+C!")
            resource.terminate()
            os.kill(os.getpid(), signal.SIGKILL)

        signal.signal(signal.SIGINT, signal_handler)

    if type == ApplicationType.SERVER:
        server = Server()
        server.serve(host, port)
        close_after_sigint(server)
        server.wait()
    elif type == ApplicationType.CLIENT_CLI:
        client = CliClient(Client(), host, port)
        client.start()
    elif type == ApplicationType.CLIENT_GUI:
        client = GuiClient(Client(), host, port)
        client.start()
Exemple #25
0
    def testStorage(self):
        cls = Client('127.0.0.1/storage/0', keysPath + 'leo.pem')
        cls.setHttpOpt({'timeout': 2})
        assert cls.format(1) == [ok]
        assert cls.info(0) == ['fileNotFound']
        assert cls.format(1) == [ok]
        assert cls.node() == [ok, 1]
        assert cls.write(_post='abc') == [ok, '%06d%024d' % (1, 0)]
        assert cls.size() == [ok, 1]
        assert cls.format(2) == [ok]
        assert cls.node() == [ok, 2]

        f2 = '%06d%024d' % (2, 0)
        assert cls.write(_post='abc') == [ok, f2]
        assert cls.info(f2)[0] == ok
        assert cls.info('%06d%024d' % (2, 200)) == ['fileNotFound']
        assert cls.read(f2) == 'abc'
        assert cls.read(f2, _lazy=1).read() == 'abc'
        assert cls.delete(f2) == [ok]
        assert cls.read(f2) == ''
        assert str(cls.info(f2)).startswith('''['ok', {'deleted': 1, 'dtime':''')

        toId = lambda x: '%06d%024d' % (1, x)
        assert cls.format(1) == [ok]
        for i in xrange(0, 5):
            assert cls.write(_post='abc') == [ok, toId(i)]
        assert cls.greater(toId(0), 3) == [ok, map(toId, [0, 1, 2])]
        assert cls.greater(toId(0), 5) == [ok, map(toId, [0, 1, 2, 3, 4])]
        assert cls.greater(toId(0), 6) == [ok, map(toId, [0, 1, 2, 3, 4])]
        assert cls.greater(toId(3), 6) == [ok, map(toId, [3, 4])]

        file = open(os.path.realpath(__file__), 'rb')
        result = cls.write(_post=file)
        file.close()
        assert result[0] == ok
        assert cls.read(result[1]).startswith('#coding:utf-8')

        assert cls.format(1) == [ok]
Exemple #26
0
from typing import Optional, Dict, Any
import asyncio
import random

from core.client import Client
from core.models import Substatus, Lst, Contact, OIM, GroupChat, GroupChatRole, User, NetworkID, TextWithData, MessageData, MessageType, LoginOption
from core.backend import Backend, BackendSession, Chat, ChatSession
from core import event

CLIENT = Client('testbot', '0.1', 'direct')


def register(loop: asyncio.AbstractEventLoop, backend: Backend) -> None:
    for i in range(5):
        uuid = backend.util_get_uuid_from_email(
            'bot{}@bot.log1p.xyz'.format(i))
        assert uuid is not None
        bs = backend.login(uuid,
                           CLIENT,
                           BackendEventHandler(loop),
                           option=LoginOption.BootOthers)
        assert bs is not None


class BackendEventHandler(event.BackendEventHandler):
    __slots__ = ('loop', 'bs')

    loop: asyncio.AbstractEventLoop
    bs: BackendSession

    def __init__(self, loop: asyncio.AbstractEventLoop) -> None:
Exemple #27
0
                        help="run as server")
    parser.add_argument("-u",
                        "--udp",
                        action="store_true",
                        help="use UDP socket (default is TCP)")
    parser.add_argument("-v",
                        "--verbose",
                        action="store_true",
                        help="set verbosity mode")
    args = parser.parse_args()

    if args.udp:
        protocol = 'udp'
    else:
        protocol = 'tcp'

    if args.server:

        server = Server(hostname=args.hostname,
                        protocol=protocol,
                        port=args.port,
                        max_conn=args.maxconn)

        server.start()

    else:
        screen = curses.initscr()

        client = Client(args.hostname, protocol, args.port)
        client.connect()
 def __init__(self, cmd_obj: Worker):
     super(MSGManager, self).__init__()
     self.__cmd_obj = cmd_obj
     self.__client = Client(cmd_obj.endpoint, cmd_obj.worker_id)
     self.__hostname = get_hostname()
     self.__pid = os.getpid()