- return lib.parent.user(s, create=False)
-
-
-def _resolve_level(s):
- s = s.lower()
- levels = ['unknown'] + [x.lower() for x in lib.clevs if x is not None]
- if s in levels:
- return levels.index(s)
- try:
- return int(s)
- except:
- pass
-
-
-@lib.hook(('clevel','setlevel','chanlev'), clevel=lib.FRIEND)
-@lib.help('<nick|#auth> <level>', "adds or sets a user's channel access level", "Levels: Unknown, " + ', '.join([x for x in lib.clevs if x]))
-@lib.argsEQ(2)
-def clevel(bot, user, chan, realtarget, *args):
- target = _resolve_user(args[0])
- level = _resolve_level(args[1])
- user_clevel = chan.levelof(user.auth)
-
- if target is None:
- return "User not found (try #auth)"
- if target.auth is None:
- return "User is not authed"
- if level is None or level < 0 or level > lib.COWNER:
- return "Level is unknown"
-
- target_clevel = chan.levelof(target.auth)
-
- if not (target == user and level == 0) and user_clevel != lib.COWNER:
- if user_clevel < lib.MASTER:
- return "I'm afraid I can't let you do that. You can only reset your own level to 0."
- if user_clevel <= target_clevel:
- return "I'm afraid I can't let you do that. Your current access level is not higher than theirs."
- if user_clevel <= level:
- return "I'm afraid I can't let you do that. Your current access level is not higher than you are trying to set."
-
- chan.setlevel(target.auth, level)
- return "Set #%s channel level to %s" % (target.auth, args[1])
-
-
-@lib.hook(glevel=lib.OWNER)
-@lib.help('<level>', "sets your own clevel on a channel")
-@lib.argsEQ(1)
-def forceclevel(bot, user, chan, realtarget, *args):
- target = user.auth
- level = _resolve_level(args[0])
- chan.setlevel(target, level)
- return 'Your level on %s has been set to %d' % (chan, level)
+ return "An error occurred!"
+
+
+def _part(user, chan):
+ chan.deleting = True
+ lib.parent.query("DELETE FROM chusers WHERE chan = %s", (chan,))
+ lib.parent.query("DELETE FROM chans WHERE chname = %s", (chan,))
+ chan.bot.part(chan)
+ user.msg('Removed channel')
+
+@lib.hook(clevel=lib.COWNER)
+@lib.help(None, "removes the bot from a channel")
+@lib.argsEQ(0)
+def part(bot, user, chan, realtarget, *args):
+ return _part(user, chan)
+
+@lib.hook(glevel=lib.ADMIN)
+@lib.help(None, "removes the bot from a channel")
+@lib.argsEQ(0)
+def fpart(bot, user, chan, realtarget, *args):
+ return _part(user, chan)