예제 #1
0
파일: bot.py 프로젝트: cuimuxi/gtalkbot
    def presence_control(self, stanza):
        msg = unicode(stanza.get_from())
        t = stanza.get_type()
        frm = stanza.get_from()
        frm_email = "%s@%s" % (frm.node, frm.domain)
        if frm_email == DAEMONACCOUNT[0]:
            p = Presence(to_jid=frm, stanza_type="subscibe")
            return stanza.make_accept_response(), p
        if t == "subscribe":
            msg += u" has requested presence subscription."
            body = "%s 加入群" % frm.node
            p = Presence(to_jid=frm, stanza_type="subscibe")
            send_all_msg(stanza, body)
            add_member(frm)
        elif t == "subscribed":
            msg += u" has accepted our presence subscription request."
            p = Presence(to_jid=frm, stanza_type="subscibe")
            add_member(frm)
        elif t == "unsubscribe":
            msg += u" has canceled his subscription of our."
            body = "%s 离开群" % frm.node
            send_all_msg(stanza, body)
            del_member(frm)
        elif t == "unsubscribed":
            msg += u" has canceled our subscription of his presence."
            del_member(frm)

        logger.info(msg)

        return stanza.make_accept_response(), p
예제 #2
0
def am():
    name = json.loads(request.data)["name"]
    db.add_member(name)
    ct = db.get_all_member()
    result = {
        'ct': ct
    }
    return jsonify(result)
예제 #3
0
파일: bot.py 프로젝트: cuimuxi/gtalkbot
 def print_roster_item(self, item):
     if item.name:
         name = item.name
     else:
         name = u""
     email = "%s@%s" % (item.jid.node, item.jid.domain)
     if not get_member(email):
         add_member(item.jid)
     print (
         u'%s "%s" subscription=%s groups=%s' % (unicode(item.jid), name, item.subscription, u",".join(item.groups))
     )
예제 #4
0
def place_bet(name, amount, odds, betted):
    while 1:
        if db.member_exists(name):
            member_balance = db.check_balance(name)
            if member_balance >= amount:
                db.add_bet(name, amount, odds, betted)
                db.update_balance(name, member_balance - amount)
                break
            else:
                pass
        else:
            db.add_member(name)
            continue
예제 #5
0
파일: bot.py 프로젝트: cuimuxi/gtalkbot
    def presence(self, stanza):
        frm = stanza.get_from()
        msg = u"%s has become " % (frm)
        t = stanza.get_type()
        status = stanza.get_status()
        show = stanza.get_show()
        frm_email = "%s@%s" % (frm.node, frm.domain)
        if frm_email != DAEMONACCOUNT[0]:
            if t == "unavailable":
                msg += u"unavailable"
                change_status(frm, 0, show)
            else:
                msg += u"available"
                if not get_member(frm_email) and frm_email != USER:
                    add_member(frm)
                change_status(frm, 1, show)
            if show:
                msg += u"(%s)" % (show,)

            if status:
                msg += u": " + status
            logger.info(msg)
예제 #6
0
async def signup_user(payload, client):
    if db.is_on_team(payload.user_id):
        return

    team_emoji = [t for t in TEAMS if t['emoji'] == payload.emoji.name]
    if team_emoji:
        try:
            team = team_emoji[0]
            server = [x for x in client.guilds if x.id == payload.guild_id][0]
            user = discord.utils.get(server.members, id=payload.user_id)
            if team['capped']:
                channel = discord.utils.get(server.channels, id=payload.channel_id)
                message = await channel.fetch_message(id=payload.message_id)
                await message.remove_reaction(payload.emoji, user)
            else:
                team_id = team['id']
                new_role = discord.utils.get(server.roles, id=team_id)
                fall_role = discord.utils.get(server.roles, id=FALL_ROLE)
                fall2020_role = discord.utils.get(server.roles, id=FALL2020_ROLE)
                db.add_member(payload.user_id, team_id)
                await user.add_roles(new_role, fall2020_role, fall_role)
        except Exception as e:
            print(f"Something has gone wrong with adding team role: {e}")
예제 #7
0
파일: app.py 프로젝트: zangdi/chameleon
def index():
    form = UserForm()
    if form.validate_on_submit():
        try:
            save_user(form.name.data)
        except DuplicateKeyError:
            print("name error")
            return render_template("index.html",
                                   form=form,
                                   message="User already exists")

        if form.create.data:
            try:
                save_room(form.room.data, form.name.data)
            except DuplicateKeyError:
                print("room exists")
                remove_user(form.name.data)
                return render_template(
                    "index.html",
                    form=form,
                    message="Cannot create room which already exists")

        if form.join.data:
            if not room_exists(form.room.data):
                print("room doesn't exists")
                remove_user(form.name.data)
                return render_template(
                    "index.html",
                    form=form,
                    message="Cannot join room which doesn't exists")

            add_member(form.room.data, form.name.data)

        return redirect(
            url_for("lobby", user=form.name.data, room=form.room.data))
    return render_template("index.html", form=form, message='')