コード例 #1
0
ファイル: polygen.py プロジェクト: SKYnv/pollirio
def poly(bot, ievent):
    try:
        grammar = "%s/%s.grm" % (path, ievent.args[0])
    except IndexError:
        grammar = None

    if not grammar:
        try:
            avail_grammars = glob("%s/*.grm" % path)
            grammar = random.choice(avail_grammars)
        except IndexError:
            bot.msg(choose_dest(ievent), "%s: nessuna grammatica disponibile! polygen-data è installato?" % ievent.nick)
            return

    if not os.path.exists(grammar):
        bot.msg(choose_dest(ievent), "%s: non ho la grammatica %s!" % (ievent.nick, ievent.args[0]))
        return

    try:
        p = Popen(["polygen", grammar], stdout=PIPE)
        reply = " ".join(filter(lambda x: x, p.communicate())).replace("\n", " ").strip()
        text = strip_tags(reply)
        if ievent.channel not in ['#pollo']:
            if ievent.args[0] not in ['melissap', 'teen', 'teen2', 'studioaperto']:
                text = trunc(text)
        bot.msg(choose_dest(ievent), "%s: %s" % (ievent.nick, text))
    except:
        bot.msg(choose_dest(ievent), "%s: non posso dirti nulla di nuovo, c'è stato un errore..." % ievent.nick)
        raise
        return
コード例 #2
0
ファイル: polygen.py プロジェクト: SKYnv/pollirio
def polylist(bot, ievent):
    try:
        grammars = glob("%s/*.grm" % path)
        tmp = []
        for g in grammars:
            tmp.append(os.path.basename(g).replace(".grm", ""))
        grammars = sorted(tmp)
    except IndexError:
        bot.msg(choose_dest(ievent), "%s: nessuna grammatica disponibile! polygen-data è installato?" % ievent.nick)
        return

    bot.msg(choose_dest(ievent), "%s: conosco queste grammatiche: %s" % (ievent.nick, " ".join(grammars)))
コード例 #3
0
ファイル: quotes.py プロジェクト: SKYnv/pollirio
def quotedel(bot, ievent):
    '''quote-del <id>'''
    bot.sendLine('WHO %s' % ievent.channel)
    modes = bot.userlist[ievent.channel.lower()][ievent.nick]
    if '~' in modes or \
      '&' in modes or \
      '@' in modes or \
      ievent.nick == 'dapal':
        id = int(ievent.args[0])
        if quotes.delete(id):
            bot.msg(choose_dest(ievent), '%s: quote \x02%s\x0F cancellato.' % (ievent.nick, id))
        else:
            bot.msg(choose_dest(ievent), '%s: impossibile cancellare il quote %s.' % (ievent.nick, id))
コード例 #4
0
ファイル: erepublik.py プロジェクト: SKYnv/pollirio
def ordini(bot, ievent):
    from pprint import pprint
    ordine = orders.get_last(ievent.channel.lower())[0]
    #pprint(ordine)
    if not ordine:
        bot.msg(choose_dest(ievent), '\x02Nessun ordine attivo.\x0F')
    else:
        # ordine = [(1, u'#ei-tech', u'Pvppa.', u'dapal', u'2014-04-14 22:44:40.767942')]
        _, _, message, issuer, when = ordine
        issuer = issuer[:-1] + '|' + issuer[-1] # so that it doesn't ping the user
        message = '\x02%s\x0F (set by %s at %s)' % (message, issuer, when)
        bot.msg(choose_dest(ievent), message.encode('utf-8'))
    return
コード例 #5
0
ファイル: perla.py プロジェクト: SKYnv/pollirio
def perladel(bot, ievent):
    '''perla-del <id>'''
    bot.sendLine('WHO %s' % ievent.channel)
    modes = bot.userlist[ievent.channel.lower()][ievent.nick]
    if '~' in modes or \
      '&' in modes or \
      '@' in modes or \
      ievent.nick == 'dapal':
        id = int(ievent.args[0])
        if perle.delete(id):
            bot.msg(choose_dest(ievent), '%s: perla \x02%s\x0F cancellata.' % (ievent.nick, id))
        else:
            bot.msg(choose_dest(ievent), '%s: impossibile cancellare la perla %s.' % (ievent.nick, id))
コード例 #6
0
ファイル: erepublik.py プロジェクト: SKYnv/pollirio
def reg_nick(bot, ievent):
    '''.reg_nick <id> [nickname]'''
    uid = ievent.args[0]
    if len(ievent.args) == 1:
        user = ievent.nick
    else:
        user = ievent.args[1]
    print uid, user
    ret = users.search(user)
    if ret:
        bot.msg(choose_dest(ievent), '%s: utente già esistente.' % ievent.nick)
    else:
        users.add(user, uid)
        bot.msg(choose_dest(ievent), '%s: utente aggiunto.' % ievent.nick)
コード例 #7
0
ファイル: perla.py プロジェクト: SKYnv/pollirio
def perla(bot, ievent):
    '''perla [numero perla]'''
    if len(ievent.args) == 0:
        perla = perle.random()
    else:
        try:
            perla = perle.idperla(int(ievent.args[0]))
        except exceptions.ValueError:
            perla = perle.random()

    if perla:
        bot.msg(choose_dest(ievent), '%s: %s' % (ievent.nick, perla.encode('utf-8')))
    else:
        bot.msg(choose_dest(ievent), '%s: non esiste quella perla di saggezza!' % ievent.nick)
コード例 #8
0
ファイル: lart.py プロジェクト: SKYnv/pollirio
def lartdel(bot, ievent):
    """lart-del <id del lart>"""
    bot.sendLine('WHO %s' % ievent.channel)
    modes = bot.userlist[ievent.channel.lower()][ievent.nick]
    if '~' in modes or \
      '&' in modes or \
      '@' in modes or \
      ievent.nick == 'dapal':
        id = int(ievent.args[0])
        if larts.delete(id):
            bot.msg(choose_dest(ievent), "%s: lart %s cancellato." % (ievent.nick, id))
        else:
            bot.msg(choose_dest(ievent), "%s: impossibile cancellare lart %s." % (ievent.nick, id))
    return
コード例 #9
0
ファイル: quotes.py プロジェクト: SKYnv/pollirio
def quote(bot, ievent):
    '''quote [numero quote]'''
    if len(ievent.args) == 0:
        quote = quotes.random()
    else:
        try:
            quote = quotes.idquote(int(ievent.args[0]))
        except exceptions.ValueError:
            quote = quotes.random()

    if quote:
        bot.msg(choose_dest(ievent), quote.encode('utf-8'))
    else:
        bot.msg(choose_dest(ievent), '%s: non ho un quote \x02%d\x0F.' % (ievent.nick, int(ievent.args[0])))
コード例 #10
0
ファイル: lart.py プロジェクト: SKYnv/pollirio
def lartllow(bot, ievent):
    """lartallow <utente>"""
    bot.sendLine('WHO %s' % ievent.channel)
    modes = bot.userlist[ievent.channel.lower()][ievent.nick]
    if '~' in modes or \
      '&' in modes or \
      '@' in modes or \
      '%' in modes or \
      ievent.nick == 'dapal':
        if len(ievent.args):
            ignores.delete(ievent.args[0], ievent.nick)
            bot.msg(choose_dest(ievent), '%s: cot' % ievent.nick)
    else:
        bot.msg(choose_dest(ievent), '%s: PVPPA' % ievent.nick)
    return
コード例 #11
0
ファイル: quotes.py プロジェクト: SKYnv/pollirio
def quotesearch(bot, ievent):
    '''quote-search <query>'''
    args = ievent.msg.split(' ', 1)
    query = args[1]
    for id, quote, createtime, user in quotes.search(query):
        bot.msg(choose_dest(ievent), '\x02#%s\x0F: %s' % (id, quote.encode('utf-8')))
        time.sleep(0.75)
コード例 #12
0
ファイル: perla.py プロジェクト: SKYnv/pollirio
def perlasearch(bot, ievent):
    '''perla-search <query>'''
    args = ievent.msg.split(' ', 1)
    query = args[1]
    for id, perla in perle.search(query):
        bot.msg(choose_dest(ievent), '\x02#%s\x0F: %s' % (id, perla.encode('utf-8')))
        time.sleep(0.75)
コード例 #13
0
ファイル: erepublik.py プロジェクト: SKYnv/pollirio
def rankup(bot, ievent):
    if len(ievent.args) == 0:
        user = ievent.nick
    else:
        user = '******'.join(ievent.args)
    user_id = get_uid(bot, ievent, user)
    if not user_id:
        return
    profile = scrape('citizen.profile', citizenId=user_id)

    next_rank_inf = 0
    for inf in sorted(rankings.keys()):
        if inf >= int(profile['militaryAttributes']['rank_points']):
            next_rank_inf = inf
            break
    next_rank = rankings[next_rank_inf]
    req_inf = (next_rank_inf - int(profile['militaryAttributes']['rank_points'])) * 10

    elite = int(profile['general']['level']) >= 101
    hit = get_hit(profile['militaryAttributes']['strength'], profile['militaryAttributes']['rank_points'], elite)
    hit_q0 = int(req_inf / hit)

    msg = 'Prossimo rank per %s: \x02%s\x0F :: Inf richiesta: %d :: Q0: \x02%s\x0F :: Q1: \x02%s\x0F :: Q2: \x02%s\x0F :: Q3: \x02%s\x0F :: Q4: \x02%s\x0F :: Q5: \x02%s\x0F :: Q6: \x02%s\x0F :: Q7: \x02%s\x0F' % \
        (profile['general']['name'], next_rank, req_inf, hit_q0, int(hit_q0 / 1.2),
         int(hit_q0 / 1.4), int(hit_q0 / 1.6), int(hit_q0 / 1.8),
         int(hit_q0 / 2), int(hit_q0 / 2.2), int(hit_q0 / 3))

    bot.msg(choose_dest(ievent), msg)
コード例 #14
0
ファイル: users.py プロジェクト: SKYnv/pollirio
def erre(bot, ievent):
    sentences = [
        'vola, x3rr3x, vola!',
        'x3rr3x sei carico stasera?',
    ]
    msg = randomize_msg(sentences)
    if msg:
        bot.msg(choose_dest(ievent), msg)
コード例 #15
0
ファイル: erep_ei.py プロジェクト: SKYnv/pollirio
def reclute_link(bot, ievent, link):
    if limited_message(bot, ievent):
        if len(ievent.args):
            nick = ievent.args[0]
        else:
            nick = ievent.nick
        bot.msg(choose_dest(ievent), '%s: %s' % (nick, link))
    return
コード例 #16
0
ファイル: erepublik.py プロジェクト: SKYnv/pollirio
def link_profile(bot, ievent):
    if len(ievent.args) == 0:
        user = ievent.nick
    else:
        user = '******'.join(ievent.args)
    user_id = get_uid(bot, ievent, user)
    if not user_id:
        return
    bot.msg(choose_dest(ievent), '%s: http://www.erepublik.com/en/citizen/profile/%s' % (ievent.nick, user_id))
コード例 #17
0
ファイル: lart.py プロジェクト: SKYnv/pollirio
def lartsearch(bot, ievent):
    """lart-search <query>"""
    args = ievent.msg.split(" ", 1)
    if len(args) == 1:
        bot.msg(choose_dest(ievent), "%s: cosa devo cercare?" % ievent.nick)
        return

    query = args[1]
    if len(query) < 3:
        bot.msg(choose_dest(ievent), '%s: il termine di ricerca deve contenere almeno 3 caratteri.' % ievent.nick)
        return
    if query.strip() in ['$who', 'who']:
        bot.msg(choose_dest(ievent), '%s: volevi fare il furbo, eh?' % ievent.nick)
        return
    for id, lart in larts.search(query):
        bot.msg(choose_dest(ievent), "#%s: %s" % (id, lart.encode("utf-8")))
        time.sleep(0.75)
    return
コード例 #18
0
ファイル: users.py プロジェクト: SKYnv/pollirio
def linxys(bot, ievent):
    sentences = [
        'Linxys :***',
        'Linxys ti difendo io!',
        'hey, Linxys! Non tradirmi! :(',
    ]
    msg = randomize_msg(sentences)
    if msg:
        bot.msg(choose_dest(ievent), msg)
コード例 #19
0
ファイル: erepublik.py プロジェクト: SKYnv/pollirio
def egov_profile(bot, ievent):
    if len(ievent.args) == 0:
        user = ievent.nick
    else:
        user = '******'.join(ievent.args)
    user_id = get_uid(bot, ievent, user)
    if not user_id:
        return
    bot.msg(choose_dest(ievent), '%s: http://egov4you.info/citizen/overview/%s' % (ievent.nick, user_id))
コード例 #20
0
ファイル: erepublik.py プロジェクト: SKYnv/pollirio
def message(bot, ievent):
    if len(ievent.args) == 0:
        user = ievent.nick
    else:
        user = '******'.join(ievent.args)
    user_id = get_uid(bot, ievent, user)
    if not user_id:
        return
    bot.msg(choose_dest(ievent), '%s: http://www.erepublik.com/en/main/messages-compose/%s' % (ievent.nick, user_id))
コード例 #21
0
ファイル: erepublik.py プロジェクト: SKYnv/pollirio
def money(bot, ievent):
    if len(ievent.args) == 0:
        user = ievent.nick
    else:
        user = '******'.join(ievent.args)
    user_id = get_uid(bot, ievent, user)
    if not user_id:
        return
    bot.msg(choose_dest(ievent), '%s: http://www.erepublik.com/en/economy/donate-money/%s' % (ievent.nick, user_id))
コード例 #22
0
ファイル: erep_ei.py プロジェクト: SKYnv/pollirio
def ei_profilo(bot, ievent):
    if len(ievent.args) == 0:
        user = ievent.nick
    else:
        user = '******'.join(ievent.args)
    user_id = get_uid(bot, ievent, user)
    if not user_id:
        return
    bot.msg(choose_dest(ievent), '%s: http://ei-manage.hanskalabs.net/users/view/%s' % (ievent.nick, user_id))
コード例 #23
0
ファイル: users.py プロジェクト: SKYnv/pollirio
def awedxz(bot, ievent):
    sentences = [
        'son tuti terùn chi, eh awedxz?',
        'hey awedxz, hai sentito della storia tra Turid e x3rr3x?',
        "awedxz smettila di fappare, c'è gente che ti chiama!",
        'non pingarlo, tanto awedxz se ne catafotte.',
    ]
    msg = randomize_msg(sentences)
    if msg:
        bot.msg(choose_dest(ievent), msg)
コード例 #24
0
ファイル: erepublik.py プロジェクト: SKYnv/pollirio
def get_uid(bot, ievent, user):
    ret = users.search(user)
    if ret:
        return int(ret[0][2])
    try:
        uid = scrape('uid', query=user)
        users.add(user, uid)
        return uid
    except IndexError:
        bot.msg(choose_dest(ievent), '%s: utente «%s» non trovato.' % (ievent.nick, user))
        return None
コード例 #25
0
ファイル: erepublik.py プロジェクト: SKYnv/pollirio
def avatar(bot, ievent):
    if len(ievent.args) == 0:
        user = ievent.nick
    else:
        user = '******'.join(ievent.args)
    user_id = get_uid(bot, ievent, user)
    if not user_id:
        return
    profile = scrape('citizen.profile', citizenId=user_id)
    avatar = profile['general']['avatar'].replace('\\/', '/')
    bot.msg(choose_dest(ievent), '%s: %s' % (ievent.nick, avatar))
コード例 #26
0
ファイル: quotes.py プロジェクト: SKYnv/pollirio
def quoteadd(bot, ievent):
    '''quote-add <testo>'''
    bot.sendLine('WHO %s' % ievent.channel)
    modes = bot.userlist[ievent.channel.lower()][ievent.nick]
    if '~' in modes or \
      '&' in modes or \
      '@' in modes or \
      ievent.nick == 'dapal':
        args = ievent.msg.split(' ', 1)
        id = quotes.add(args[1])
        bot.msg(choose_dest(ievent), '%s: quote \x02%s\x0F aggiunto.' % (ievent.nick, id))
コード例 #27
0
ファイル: lart.py プロジェクト: SKYnv/pollirio
def lartadd(bot, ievent):
    """lart-add <testo contenente $who>"""
    args = ievent.msg.split(" ", 1)
    bot.sendLine('WHO %s' % ievent.channel)
    modes = bot.userlist[ievent.channel.lower()][ievent.nick]
    if '~' in modes or \
      '&' in modes or \
      '@' in modes or \
      ievent.nick == 'dapal':
        id = larts.add(args[1])
        bot.msg(choose_dest(ievent), "%s: lart %s aggiunto." % (ievent.nick, id))
    return
コード例 #28
0
ファイル: bts.py プロジェクト: SKYnv/pollirio
def bug(bot, ievent):
    """bug <bugid>"""
    bts = debbugs()
    b = bts.get(int(ievent.args[0]))

    status = "(fixed) " if b.status == "done" else ""
    severity = "(%s) " % b.severity if b.severity != "normal" else ""

    #msg = colourise("[bug]#%s[reset]%s: %s: «[title]%s[reset]»%s [url]%s[reset]" % (b.bug, status, package, b.summary, severity, b.url)).decode("utf-8")
    #msg = "#%s%s: %s: %s%s %s" % (b.bug, status, b.package, b.summary, severity, b.url)
    msg = "%s %s%s- %s: %s" % (b.url, status, severity, b.package, b.summary)
    bot.msg(choose_dest(ievent), "%s: %s" % (ievent.nick, msg.encode("utf-8")))
コード例 #29
0
ファイル: erepublik.py プロジェクト: SKYnv/pollirio
def list_profile(bot, ievent):
    if len(ievent.args) == 0:
        user = ievent.nick
    else:
        user = '******'.join(ievent.args)
    user_id = get_uid(bot, ievent, user)
    if not user_id:
        return
    profile = scrape('citizen.profile', citizenId=user_id)
    age = datetime.now() - datetime.strptime(profile['general']['birthDay'], '%b %d, %Y')

    if not profile['party']['name']:
        profile['party']['name'] = 'Nessun partito'
    if not profile['militaryUnit']:
        profile['militaryUnit']['name'] = 'Nessuna MU'

    # fix for missing Titan(***) in the API
    rank_inf = 0
    for inf in sorted(rankings.keys()):
        if inf <= int(profile['militaryAttributes']['rank_points']):
            rank_inf = inf
    rank = rankings[rank_inf]

    bot.msg(
        choose_dest(ievent),
        '\x02ID:\x0F %s ' \
        '\x02Lvl:\x0F %s ' \
        '\x02Age:\x0F %s ' \
        '\x02XP:\x0F %s ' \
        '\x02Strength:\x0F %s ' \
        '\x02Rank:\x0F %s ' \
        '\x02Rank Points:\x0F %s ' \
        '\x02Ranking:\x0F %s ' \
        '\x02CZ:\x0F %s ' \
        '\x02Residence:\x0F %s, %s ' \
        '\x02Party:\x0F %s ' \
        '\x02MU:\x0F %s' %
        (
            user_id,
            profile['general']['level'],
            age.days,
            profile['general']['experience_points'],
            profile['militaryAttributes']['strength'],
            rank,
            profile['militaryAttributes']['rank_points'],
            profile['general']['nationalRank'],
            profile['location']['citizenship_country_initials'],
            profile['location']['residence_country_name'],
            profile['location']['residence_region_name'],
            profile['party']['name'],
            profile['militaryUnit']['name']
        )
    )
コード例 #30
0
ファイル: users.py プロジェクト: SKYnv/pollirio
def turid(bot, ievent):
    sentences = [
        'che ha combinato Turid stavolta?!',
        'ma Turid ha bevuto?',
        'in alto i calici per Turid!',
        'evviva Turid!!!',
        'fate reclutare gente a Turid!',
        'Turid mi fa i dispetti :(',
        'Turid: ILLIMITATAMENTEEEEEEE',
    ]
    msg = randomize_msg(sentences)
    if msg:
        bot.msg(choose_dest(ievent), msg)