• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python bbs.getsession函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中x84.bbs.getsession函数的典型用法代码示例。如果您正苦于以下问题:Python getsession函数的具体用法?Python getsession怎么用?Python getsession使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了getsession函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: kbhit

 def kbhit(self, timeout=0, _intr_continue=True):
     # _intr_continue has no meaning here, sigwinch or events do not
     # interrupt the event IPC.
     from x84.bbs import getsession
     val = getsession().read_event('input', timeout)
     if val is not None:
         getsession()._buffer['input'].append(val)
         return True
     return False
开发者ID:jonny290,项目名称:yos-x84,代码行数:9,代码来源:terminal.py


示例2: notify_update_database

 def notify_update_database(self, content):
     new_content = {}
     for key, oneliner in content:
         if str(key) not in self.existing_content:
             new_content[key] = oneliner
     if new_content:
         self.log.info('[shroo.ms] %d new entries', len(new_content))
         self.new_content = new_content
         getsession().buffer_event('oneliner', True)
     else:
         self.log.debug('[shroo.ms] no new entries')
开发者ID:rostob,项目名称:x84,代码行数:11,代码来源:ol.py


示例3: prompt

def prompt():
    """
    Return string suitable for displaying prompt and available commands.
    """
    from x84.bbs import getsession, getterminal, Ansi
    session, term = getsession(), getterminal()
    decorate = lambda key, desc: u''.join((
        u'(', term.green_underline(key,),
        u')', term.reverse_green(desc.split()[0]), u' ',
        u' '.join(desc.split()[1:]), u' ',))
    return Ansi(u''.join((
        u' ' * 2,
        term.green_reverse(':keys'), u' ',
        decorate('c', 'hAt USR'),
        decorate('s', 'ENd MSG'),
        (u''.join((
        decorate('p', 'lAYbACk REC'),
        decorate('w', 'AtCh liVE'),
        decorate('d', 'iSCONNECt SiD'),
        decorate('e', 'diT USR'),
        decorate('v', 'iEW SiD AttRS'),
        u' ',)) if 'sysop' in session.user.groups else u''),
        decorate('Escape/q', 'Uit'),
        decorate('Spacebar', 'REfRESh'),
    ))).wrap(int(term.width * .7), indent=u' ' * 8)
开发者ID:jonny290,项目名称:yos-x84,代码行数:25,代码来源:online.py


示例4: send_passkey

def send_passkey(user):
    """ Send passkey token to user by e-mail. """
    session = getsession()
    passkey = base64.encodestring(os.urandom(50))[:password_max_length]

    email_msg = MIMEText(msg_mailbody.format(bbsname=system_bbsname,
                                             session=session,
                                             user=user,
                                             passkey=passkey))
    email_msg['From'] = msg_mailfrom
    email_msg['To'] = user.email
    email_msg['Subject'] = msg_mailsubj.format(bbsname=system_bbsname)

    try:
        smtp = smtplib.SMTP(mail_smtphost)
        smtp.sendmail(msg_mailfrom, [user.email], email_msg.as_string())
        smtp.quit()
    except Exception as err:
        log.exception(err)
        echo('{0}'.format(err))
        return False

    log.info(u'Password reset token delivered '
             u'to address {0!r} for user {1!r}.'
             .format(user.email, user.handle))
    return passkey
开发者ID:ztaylor,项目名称:x84,代码行数:26,代码来源:pwreset.py


示例5: saysomething

def saysomething(dumb=True):
    """
    Prompt user to post oneliner, also prompt user to post
    to bbs-scene.org if configured, returning background Thread.
    """
    import time
    from x84.bbs import getsession, getterminal, echo, LineEditor, ini
    session, term = getsession(), getterminal()
    prompt_say = u'SAY WhAt ?! '
    # heard_msg = u'YOUR MESSAGE hAS bEEN VOiCEd.'

    yloc = term.height - 3
    xloc = max(0, ((term.width / 2) - (MAX_INPUT / 2)))
    if dumb:
        echo(u'\r\n\r\n' + term.bold_blue(prompt_say))
    else:
        echo(term.move(yloc, xloc) or u'\r\n\r\n')
        echo(term.bold_blue(prompt_say))
    ole = LineEditor(MAX_INPUT)
    ole.highlight = term.green_reverse
    oneliner = ole.read()
    if oneliner is None or 0 == len(oneliner.strip()):
        if not dumb:
            # clear input line,
            echo(term.normal + term.move(yloc, 0) + term.clear_eol)
        return None

    session.user['lastliner'] = time.time()
    # post local-onlyw hen bbs-scene.org is not configured
    if not ini.CFG.has_section('bbs-scene'):
        add_oneline(oneliner.strip())
        return None
    return post_bbs_scene(oneliner, dumb)
开发者ID:donfanning,项目名称:x84,代码行数:33,代码来源:ol.py


示例6: prompt_ok

def prompt_ok():
    """
    Prompt user to continue, True if they select yes.
    """
    from x84.bbs import getsession, getterminal, echo, getch, Selector
    session, term = getsession(), getterminal()
    prompt_confirm = u'EVERYthiNG lOOk Ok ?'
    prompt_continue = u'YES (CONtiNUE)'
    prompt_chg = u'NO! (ChANGE)'

    def prompt_ok_dumb():
        """ Dummy terminal prompt for confirm/cancel. """
        echo('\r\n\r\n%s\r\n' % (prompt_confirm,))
        echo('1 - %s\r\n' % (prompt_continue,))
        echo('2 - %s\r\n\r\n' % (prompt_chg,))
        echo('select (1, 2) --> ')
        while True:
            inp = getch()
            if inp == u'1':
                return True
            elif inp == u'2':
                return False
    if session.env.get('TERM') == 'unknown':
        return prompt_ok_dumb()
    sel = Selector(yloc=term.height - 1, xloc=5,
                   width=term.width - 10,
                   left=prompt_continue, right=prompt_chg)
    echo(term.normal)
    echo(term.move(term.height - 2, 0) + term.clear_eol)
    echo(prompt_confirm.center(term.width - 1) + '\r\n')
    echo(term.clear_eol + sel.refresh())
    while True:
        echo(sel.process_keystroke(getch()))
        if sel.selected:
            return True if sel.selection == prompt_continue else False
开发者ID:jonny290,项目名称:yos-x84,代码行数:35,代码来源:nua.py


示例7: display_msg

def display_msg(msg):
    """ Display full message """
    from x84.bbs import getterminal, getsession, echo, decode_pipe
    session, term = getsession(), getterminal()
    body = msg.body.splitlines()
    style = getstyle()

    receipt = (msg.recipient if msg.recipient is not None
               else u'<(None)=All users>')

    echo(u'    AUthOR: ' + style['highlight'](msg.author) + u'\r\n\r\n')
    echo(u'   RECiPiENt: ')
    echo(style['lowlight'](receipt))
    echo(u'\r\n\r\n')
    echo(u'     SUBjECt: ')
    echo(style['lowlight'](msg.subject))
    echo(u'\r\n\r\n')
    echo(u'        tAGS: ')
    echo(style['lowlight'](u', '.join(msg.tags)))
    echo(u'\r\n\r\n')
    echo(term.underline(u'        bOdY: '.ljust(term.width - 1)) + u'\r\n')
    echo(decode_pipe(u'\r\n'.join(body)) + term.normal)
    echo(u'\r\n' + term.underline(u''.ljust(term.width - 1)))
    echo(u'\r\n\r\n')
    session.activity = 'Constructing a %s message' % (
        u'public' if u'public' in msg.tags else u'private',)
    return
开发者ID:signalpillar,项目名称:x84,代码行数:27,代码来源:writemsg.py


示例8: process_keystroke

def process_keystroke(inp, key=None):
    """ Process general keystroke and call routines.  """
    from x84.bbs import getsession, DBProxy, gosub, echo
    session = getsession()
    if inp is None:
        return False
    elif type(inp) is int:
        return False
    elif inp in (u't', u'T') and key is not None:
        bbs = DBProxy('bbslist')[key]
        gosub('telnet', bbs['address'], bbs['port'],)
    elif inp in (u'a', u'A'):
        add_bbs()
    elif inp in (u'c', u'C') and key is not None:
        add_comment(key)
    elif inp in (u'r', u'R') and key is not None:
        rate_bbs(key)
    elif inp in (u'i', u'I') and key is not None:
        echo(get_bbsinfo(key) + '\r\n')
    elif inp in (u'v', u'V') and key is not None:
        view_ansi(key)
    elif inp in (u'd', u'D') and key is not None and (
            'sysop' in session.user.groups):
        del DBProxy('bbslist')[key]
    else:
        return False  # unhandled
    return True
开发者ID:jonny290,项目名称:yos-x84,代码行数:27,代码来源:bbslist.py


示例9: usernum

 def usernum(self):
     from x84.bbs import getsession
     from x84.bbs.userbase import list_users
     try:
         return list_users().index(getsession().user.handle)
     except ValueError:
         return 999
开发者ID:donfanning,项目名称:x84,代码行数:7,代码来源:door.py


示例10: main

def main(anonymous=False, new=False, username=''):
    """ Main procedure. """
    from x84.bbs import (
        getsession,
        getterminal,
        find_user,
        get_user,
        User,
    )

    session, term = getsession(), getterminal()
    session.activity = 'sftp'

    if anonymous:
        user = User(u'anonymous')
    else:
        assert not new, ("[email protected] user not supported by SFTP.")

        # ProperCase user-specified handle
        handle = find_user(username)
        assert handle is not None, handle

        # fetch user record
        user = get_user(handle)

    # assign session user, just as top.py function login()
    session.user = user

    while True:
        inp = term.inkey()  # should block indefinately
        log = logging.getLogger(__name__)
        log.warn('Got inkey: {0!r}'.format(inp))
开发者ID:adammendoza,项目名称:x84,代码行数:32,代码来源:matrix_sftp.py


示例11: get_centigrade

def get_centigrade():
    """ Blocking prompt for setting C/F preference. """
    from x84.bbs import getterminal, getsession, echo
    term = getterminal()
    session = getsession()
    if bool(session.user.handle == 'anonymous'):
        # anonymous cannot set a preference.
        return

    echo(u''.join((
        u'\r\n\r\n',
        term.yellow(u'Celcius'),
        term.bold_yellow(u'('),
        term.bold_yellow_reverse(u'C'),
        term.bold_yellow(u')'),
        u' or ',
        term.yellow(u'Fahrenheit'),
        term.bold_yellow(u'('),
        term.bold_yellow_reverse(u'F'),
        term.bold_yellow(u')'),
        u'? ')))

    while True:
        inp = term.inkey()
        if inp in (u'c', u'C'):
            session.user['centigrade'] = True
            session.user.save()
            break
        elif inp in (u'f', u'F'):
            session.user['centigrade'] = False
            session.user.save()
            break
        elif inp in (u'q', u'Q', term.KEY_EXIT):
            break
开发者ID:gofore,项目名称:x84,代码行数:34,代码来源:weather.py


示例12: main

def main(handle=None):
    """ Main procedure. """
    # pylint: disable=R0914,R0912,R0915
    #         Too many local variables
    #         Too many branches
    #         Too many statements
    session, term = getsession(), getterminal()
    session.activity = 'top'

    # attempt to coerce encoding of terminal to match session.
    coerce_terminal_encoding(term, session.encoding)

    # fetch user record
    user = get_user_record(handle)

    # register call
    login(session, user)

    # display art and prompt for quick login
    quick = do_intro_art(term, session)

    echo(term.move_down() * 3)

    # only display news if the account has not
    # yet read the news since last update.
    gosub('news', quick=True)

    if not quick:
        # display last 10 callers, if any
        gosub('lc')

        # one-liners
        gosub('ol')

    goto('main')
开发者ID:hick,项目名称:x84,代码行数:35,代码来源:top.py


示例13: prompt

def prompt():
    """
    Return string suitable for displaying prompt and available commands.
    """
    from x84.bbs import getsession, getterminal

    session, term = getsession(), getterminal()
    decorate = lambda key, desc: u"".join(
        (u"(", term.magenta_underline(key), u")", term.cyan(desc.split()[0]), u" ", u" ".join(desc.split()[1:]), u" ")
    )
    return term.wrap(
        u"".join(
            (
                u" " * 2,
                term.green_reverse(":keys"),
                u" ",
                decorate("c", "hAt USR"),
                decorate("s", "ENd MSG"),
                (
                    u"".join(
                        (decorate("d", "iSCONNECt SiD"), decorate("e", "diT USR"), decorate("v", "iEW SiD AttRS"), u" ")
                    )
                    if "sysop" in session.user.groups
                    else u""
                ),
                decorate("Escape/q", "Uit"),
                decorate("Spacebar", "REfRESh"),
            )
        ),
        int(term.width * 0.8),
        subsequent_indent=u" " * 8,
    )
开发者ID:rostob,项目名称:x84,代码行数:32,代码来源:online.py


示例14: refresh

def refresh():
    """ Refresh main menu. """
    # pylint: disable=R0914
    #         Too many local variables
    from x84.bbs import getsession, getterminal, echo, showcp437, ini
    import os
    session, term = getsession(), getterminal()
    session.activity = u'Main menu'
    artfile = os.path.join(os.path.dirname(__file__), 'art', 'main.asc')
    echo(u''.join((
        u'\r\n\r\n',
        term.blue(u'/'.rjust(term.width / 2)), term.bold_black(u'/ '),
        term.bold('x'), term.bold_blue('/'), term.bold('84'), u' ',
        'MAiN MENU',
        u'\r\n')))
    for line in showcp437(artfile):
        echo(line)
    echo(u'\r\n\r\n')
    entries = [
        ('b', 'bS NEXUS'),
        ('l', 'ASt CAllS'),
        ('o', 'NE liNERS'),
        ('w', "hO'S ONliNE"),
        ('n', 'EWS'),
        ('c', 'hAt'),
        ('!', 'ENCOdiNG'),
        ('t', 'EtRiS'),
        ('s', 'YS. iNfO'),
        ('u', 'SER LiST'),
        ('f', 'ORECASt'),
        ('e', 'dit PROfilE'),
        ('p', 'OSt A MSG'),
        ('r', 'EAd All MSGS'),
        ('g', 'OOdbYE /lOGOff'),]

    # add LORD to menu only if enabled,
    if ini.CFG.getboolean('dosemu', 'enabled') and (
            ini.CFG.get('dosemu', 'lord_path') != 'no'):
        entries.insert(0, ('#', 'PlAY lORd!'))

    if 'sysop' in session.user.groups:
        entries += (('v', 'idEO CASSEttE'),)
    buf_str = u''
    for key, name in entries:
        out_str = u''.join((
            term.bold(u'('),
            term.bold_blue_underline(key),
            term.bold(u')'),
            term.bold_blue(name.split()[0]),
            u' ', u' '.join(name.split()[1:]),
            u'  '))
        ansilen = term.length(buf_str + out_str)
        if ansilen >= (term.width * .8):
            echo(term.center(buf_str) + u'\r\n\r\n')
            buf_str = out_str
        else:
            buf_str += out_str
    echo(term.center(buf_str) + u'\r\n\r\n')
    echo(u' [%s]:' % (
        term.blue_underline(''.join([key for key, name in entries]))))
开发者ID:donfanning,项目名称:x84,代码行数:60,代码来源:main.py


示例15: refresh_opts

def refresh_opts(pager, handle):
    """ Refresh pager border with command keys available. """
    from x84.bbs import getsession, getterminal, get_user, find_user, Ansi
    session, term = getsession(), getterminal()
    if not handle or not find_user(handle):
        has_plan = 0
    else:
        has_plan = 0 != len(get_user(handle).get('.plan', u'').strip())
    decorate = lambda key, desc: u''.join((
        term.red_underline(key,),
        u':',
        term.yellow(desc.split()[0]), u' ',
        u' '.join(desc.split()[1:]),
        u' ' if len(desc.split()) > 1 else u'',))
    statusline = u''.join((
        term.bold_yellow(u'- '),
        decorate(u'Escape/q', 'Uit'),
        decorate(u'v', 'iEW .PLAN') if has_plan else u'',
        decorate(u'e', 'dit USR') if 'sysop' in session.user.groups else u'',
        term.bold_yellow(u'-'),
    ))
    if len(Ansi(statusline)) < (pager.visible_width - 4):
        return pager.border() + pager.footer(statusline)
    else:
        return pager.border() + pager.footer(term.bold_red('q') + u':uit')
开发者ID:quastdog,项目名称:x84,代码行数:25,代码来源:lc.py


示例16: try_pass

def try_pass(user):
    """
    Prompt for password and authenticate, returns True if succesfull.
    """
    # pylint: disable=R0914
    #         Too many local variables
    from x84.bbs import getsession, getterminal, ini, LineEditor, echo
    session, term = getsession(), getterminal()
    prompt_pass = u'\r\n\r\n  pass: '
    status_auth = u'\r\n\r\n  ' + term.yellow_reverse(u"Encrypting ..")
    badpass_msg = (u'\r\n\r\n' + term.red_reverse +
                   u"'%s' login failed." + term.normal)
    max_pass = int(ini.CFG.get('nua', 'max_pass'))
    # prompt for password, disable input tap during, mask input with 'x',
    # and authenticate against user record, performing a script change to
    # topscript if sucessful.
    # pylint: disable=W0212
    #         Access to a protected member _tap_input of a client class
    echo(prompt_pass)
    chk = session._tap_input  # <-- save
    session._tap_input = False
    lne = LineEditor(max_pass)
    lne.hidden = u'x'
    password = lne.read()
    session._tap_input = chk  # restore -->
    if password is not None and 0 != len(password):
        echo(status_auth)
        if user.auth(password):
            return True
    denied(badpass_msg % (user.handle,))
    return False
开发者ID:donfanning,项目名称:x84,代码行数:31,代码来源:matrix.py


示例17: redraw

def redraw(pager, selector):
    """ Redraw pager and selector """
    from x84.bbs import getsession, getterminal, echo
    session, term = getsession(), getterminal()
    session.flush_event('oneliner_update')
    pager.colors['border'] = term.white
    pager.glyphs['top-horiz'] = u''
    pager.glyphs['top-right'] = u''
    pager.glyphs['top-left'] = u''
    pager.glyphs['bot-horiz'] = u''
    pager.glyphs['bot-right'] = u''
    pager.glyphs['bot-left'] = u''
    pager.glyphs['left-vert'] = u''
    pager.glyphs['right-vert'] = u''
    prompt_ole = u'write an oneliner?'
    pager.update(u'\n\n\nFetching ...')
    echo(u''.join((
        pager.refresh(),
        pager.border(),
        term.move(selector.yloc - 2, selector.xloc),
        term.bold_red(prompt_ole.center(selector.width).rstrip()),
        term.clear_eol,
        selector.refresh(),)))
    pager.update(u'\n'.join(get_oltxt()))
    pager.move_end()
    echo(pager.refresh())
开发者ID:hick,项目名称:x84,代码行数:26,代码来源:ol.py


示例18: get_centigrade

def get_centigrade():
    """
    Blocking prompt for setting C/F preference
    """
    from x84.bbs import getterminal, getsession, echo, getch
    term = getterminal()
    session = getsession()
    echo(u'\r\n\r\n')
    echo(term.yellow(u'CElCiUS'))
    echo(term.bold_yellow(u'('))
    echo(term.bold_yellow_reverse(u'C'))
    echo(term.bold_yellow(u')'))
    echo(u' or ')
    echo(term.yellow(u'fAhRENhEit'))
    echo(term.bold_yellow(u'('))
    echo(term.bold_yellow_reverse(u'F'))
    echo(term.bold_yellow(u')'))
    echo('? ')
    while True:
        inp = getch()
        if inp in (u'c', u'C'):
            session.user['centigrade'] = True
            session.user.save()
            break
        elif inp in (u'f', u'F'):
            session.user['centigrade'] = False
            session.user.save()
            break
        elif inp in (u'q', u'Q', term.KEY_EXIT):
            break
开发者ID:jonny290,项目名称:yos-x84,代码行数:30,代码来源:weather.py


示例19: chk_thread

def chk_thread(thread):
    """
    for asyncronous lightbar, return False if thread is still running,
    'dirty' if thread completed and new entries were found, 'None' if thread
    completed and no no entries were discovered.
    """
    from x84.bbs import getsession, DBProxy
    if thread is None or thread.is_alive():
        return False

    # check if bbs-scene.org thread finished, silly hack
    logger = logging.getLogger()
    session = getsession()
    udbkeys = DBProxy('bbslist').keys()
    nlc = 0
    for key, value in thread.content:
        if key not in udbkeys:
            DBProxy('bbslist')[key] = value
            DBProxy('bbslist', 'comments')[key] = list()
            DBProxy('bbslist', 'ratings')[key] = list()
            nlc += 1
        else:
            # update anyway (fe. port changed), we don't
            # detect this as an update.
            DBProxy('bbslist')[key] = value
    if nlc > 0:
        logger.info('%d new entries', nlc)
        session.send_event('global', ('bbslist_update', None))
        session.buffer_event('bbslist_update')
        return 'dirty'
    else:
        logger.info('no new bbs-scene.org entries')
    return None
开发者ID:jonny290,项目名称:yos-x84,代码行数:33,代码来源:bbslist.py


示例20: chk_save_location

def chk_save_location(location):
    """
    Prompt user to save location for quick re-use
    """
    from x84.bbs import getterminal, getsession, echo, getch
    session, term = getsession(), getterminal()
    stored_location = session.user.get('location', dict()).items()
    if (sorted(location.items()) == sorted(stored_location)):
        return

    # prompt to store (unsaved/changed) location
    echo(u'\r\n\r\n')
    echo(term.yellow(u'SAVE lOCAtION'))
    echo(term.bold_yellow(' ('))
    echo(term.bold_black(u'PRiVAtE'))
    echo(term.bold_yellow(') '))
    echo(term.yellow('? '))
    echo(term.bold_yellow(u'['))
    echo(term.underline_yellow(u'yn'))
    echo(term.bold_yellow(u']'))
    echo(u': ')
    while True:
        inp = getch()
        if inp is None or inp in (u'n', u'N', u'q', u'Q', term.KEY_EXIT):
            break
        if inp in (u'y', u'Y', u' ', term.KEY_ENTER):
            session.user['location'] = location
            break
开发者ID:jonny290,项目名称:yos-x84,代码行数:28,代码来源:weather.py



注:本文中的x84.bbs.getsession函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python bbs.getterminal函数代码示例发布时间:2022-05-26
下一篇:
Python bbs.getch函数代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap