Ejemplo n.º 1
0
def temp_mute(infos, minutes):
    try:
        time.sleep(minutes * 60)
        HTTPLL.restrictChatMember(infos.token, infos.cid, infos.to_user.uid)
        send(infos, "user_unmuted")
    except Exception as err:
        HTTPLL.sendMessage(infos.token, infos.cid, "Non ho potuto unmutare l'utente con ID %s..." % infos.to_user.uid)
        Log.d("Errore nel unmute: %s" % err)
Ejemplo n.º 2
0
def unwarn(infos):
    try:
        try:
            warns = json.loads(open("Files/bot_files/%s/warns.json" % infos.bid).read())
        except Exception:
            warns = {}

        if not infos.admin:
            return send(infos, "non_admin", antispam=False, recorsivity=1)
        if infos.is_auto:
            return send(infos, "auto_unwarn", antispam=False, recorsivity=1)
        if not infos.user.is_admin:
            return send(infos, "ut_non_admin", antispam=False, recorsivity=1)
        if infos.to_user.is_owner:
            return send(infos, "user_is_owner", antispam=False, recorsivity=1)
        if infos.to_user.is_admin:
            return send(infos, "ut_admin", antispam=False, recorsivity=1)

        gid = str(infos.cid)
        ut_to_unwarn = str(infos.to_user.uid)

        if gid not in warns:
            warns[gid] = {}

        if ut_to_unwarn not in warns[gid]: warns[gid][ut_to_unwarn] = 0

        warns[gid][ut_to_unwarn] -= 1
        nwarns = warns[gid][ut_to_unwarn]

        if nwarns == -1:
            return send(infos, "unwarn_-1", antispam=False, recorsivity=1)

        if nwarns == 0:
            send(infos, "unwarn_0", antispam=False, recorsivity=1)

        if nwarns == 1:
            send(infos, "unwarn_1", antispam=False, recorsivity=1)

        with open("Files/bot_files/%s/warns.json" % infos.bid, "w") as fl:
            fl.write(json.dumps(warns))

    except Exception as err:
        send(infos, "general_error", antispam=False, recorsivity=1)
        Log.e(err)
Ejemplo n.º 3
0
def warn(infos, self=False):
    try:
        try:
            warns = json.loads(open("Files/bot_files/%s/warns.json" % infos.bid).read())
        except Exception:
            warns = {}

        gid = str(infos.cid)

        if not self:
            ut_to_warn = str(infos.to_user.uid)
            if not infos.admin:
                return send(infos, "non_admin", antispam=False, recorsivity=1)
            if infos.is_auto:
                return send(infos, "auto_warn", antispam=False, recorsivity=1)
            if not infos.user.is_admin:
                return send(infos, "ut_non_admin", antispam=False, recorsivity=1)
            if infos.to_user.is_owner:
                return send(infos, "user_is_owner", antispam=False, recorsivity=1)
            if infos.to_user.is_admin:
                return send(infos, "ut_admin", antispam=False, recorsivity=1)
        else:
            ut_to_warn = str(infos.user.uid)
            if infos.user.is_admin:
                return
            if infos.user.is_owner:
                return
            if infos.user.is_admin:
                return

        if gid not in warns:
            warns[gid] = {}

        if ut_to_warn not in warns[gid]:
            warns[gid][ut_to_warn] = 0

        warns[gid][ut_to_warn] += 1
        nwarns = warns[gid][ut_to_warn]

        if not self:
            if nwarns == 1:
                send(infos, "warn1", antispam=False, recorsivity=1)

            if nwarns == 2:
                send(infos, "warn2", antispam=False, recorsivity=1)

            if nwarns == 3:
                warns[gid][ut_to_warn] = 0
                send(infos, "warn3", antispam=False, recorsivity=1)
                HTTPLL.kickChatMember(infos.token, infos.cid, ut_to_warn)
        else:
            if nwarns == 3:
                warns[gid][ut_to_warn] = 0
                HTTPLL.kickChatMember(infos.token, infos.cid, ut_to_warn)

        with open("Files/bot_files/%s/warns.json" % infos.bid, "w") as fl:
            fl.write(json.dumps(warns))

    except Exception as err:
        send(infos, "general_error", antispam=False, recorsivity=1)
        Log.e(err)