当前位置: 首页>>代码示例>>Python>>正文


Python Irc类代码示例

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


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

示例1: send

	def send(self, *args):
		print(self.nick + ": " + Irc.compile(*args))
		t = self.lastsend - time.time() + 0.25
		if t > 0:
			time.sleep(t)
		self.connection.sendall(Irc.compile(*args) + "\n")
		self.lastsend = time.time()
开发者ID:red-green,项目名称:soaker-doge,代码行数:7,代码来源:IrcServer.py

示例2: privmsg

	def privmsg(self, targ, text, priority = None):
		Logger.log("c", self.instance + ": %s <- %s " % (targ, text))
		for i in xrange(0, len(text), 350):
			if priority:
				Irc.instance_send(self.instance, ("PRIVMSG", targ, text[i:i+350]), priority = priority)
			else:
				Irc.instance_send(self.instance, ("PRIVMSG", targ, text[i:i+350]))
开发者ID:digideskio,项目名称:Doger,代码行数:7,代码来源:Hooks.py

示例3: tip

def tip(req, arg):
	"""%tip <target> <amount> - Sends 'amount' coins to the specified nickname"""
	if len(arg) < 2:
		return req.reply(gethelp("tip"))
	to = arg[0]
	acct, toacct = Irc.account_names([req.nick, to])
	if not acct:
		return req.reply_private("You are not identified with freenode services (see /msg NickServ help)")
	if Transactions.lock(acct):
		return req.reply_private("Your account is currently locked")
	if not toacct:
		if toacct == None:
			return req.reply_private(to + " is not online")
		else:
			return req.reply_private(to + " is not identified with freenode services")
	try:
		amount = parse_amount(arg[1], acct)
	except ValueError as e:
		return req.reply_private(str(e))
	token = Logger.token()
	try:
		Transactions.tip(token, acct, toacct, amount)
		if Irc.equal_nicks(req.nick, req.target):
			req.reply("Done [%s]" % (token))
		else:
			req.say("Such %s tipped much Ɖ%i to %s! (to claim /msg Doger help) [%s]" % (req.nick, amount, to, token))
		req.privmsg(to, "Such %s has tipped you Ɖ%i (to claim /msg Doger help) [%s]" % (req.nick, amount, token), priority = 10)
	except Transactions.NotEnoughMoney:
		req.reply_private("You tried to tip Ɖ%i but you only have Ɖ%i" % (amount, Transactions.balance(acct)))
开发者ID:justinvforvendetta,项目名称:Doger,代码行数:29,代码来源:Commands.py

示例4: main

def main(args):
    global irc

    listener = Listener(IRC_RESTART, restartIRCHook)
    getEventManager().addListener(listener)

    host = args[1]
    port = int(args[2])
    channel = args[3]
    if channel[0] != '#':
        channel = '#' + channel

    getEventManager().start()

    irc = Irc(host, port, channel)

    while running:
        try:
            i = raw_input()
            if i == "quit" or i == "exit":
                irc.disconnect()
                getEventManager().stop()
                break
        except KeyboardInterrupt:
            irc.disconnect()
            getEventManager().stop()
            break

    time.sleep(1)
    sys.exit()
开发者ID:mopx,项目名称:FlossBot,代码行数:30,代码来源:main.py

示例5: tip

def tip(req, arg):
	"""%tip <target> <amount> - Sends 'amount' coins to the specified nickname"""
	if len(arg) < 2:
		return req.reply("%tip <target> <amount>")
	to = arg[0]
	acct, toacct = Irc.account_names([req.nick, to])
	if not acct:
		return req.reply_private("You are not identified with freenode services (see /msg NickServ help)")
	if not toacct:
		if toacct == None:
			return req.reply_private(to + " is not online")
		else:
			return req.reply_private(to + " is not identified with freenode services")
	try:
		amount = int(arg[1])
		if amount <= 0:
			raise ValueError()
		amount = min(amount, 1000000000000)
	except ValueError as e:
		req.reply_private(repr(arg[1]) + " - invalid amount")
		return None
	with Logger.token() as token:
		try:
			Transactions.tip(acct, toacct, amount)
			token.log("t", "acct:%s tipped %d to acct:%s(%d)" % (acct, amount, toacct, Transactions.balance(toacct)))
			if Irc.equal_nicks(req.nick, req.target):
				req.reply("Done [%s]" % (token.id))
			else:
				req.say("Such %s tipped much Ɖ%i to %s! (to claim /msg Doger help) [%s]" % (req.nick, amount, to, token.id))
			Irc.instance_send(req.instance, "PRIVMSG", to, "Such %s has tipped you Ɖ%i (to claim /msg Doger help) [%s]" % (req.nick, amount, token.id))
		except Transactions.NotEnoughMoney:
			req.reply_private("You tried to tip Ɖ%i but you only have Ɖ%i" % (amount, Transactions.balance(acct)))
开发者ID:hashfaster,项目名称:Doger,代码行数:32,代码来源:Commands.py

示例6: _help

def _help(req, arg):
    """%help - list of commands; %help <command> - help for specific command"""
    if len(arg):
        h = gethelp(arg[0])
        if h:
            req.reply(h)
    else:
        if not Irc.equal_nicks(req.target, req.nick):
            return req.reply("I'm Doger, an IRC dogecoin tipbot. For more info do /msg Doger help")
        acct = Irc.account_names([req.nick])[0]
        if acct:
            ident = "you're identified as \2" + acct + "\2"
        else:
            ident = "you're not identified"
        req.say(
            "I'm Doger, I'm an IRC dogecoin tipbot. To get help about a specific command, say \2%help <command>\2  Commands: %tip %balance %withdraw %deposit %mtip %donate %help".replace(
                "%", Config.config["prefix"]
            )
        )
        req.say(
            (
                "Note that to receive or send tips you should be identified with freenode services (%s). Please consider donating with %%donate. For any support questions, including those related to lost coins, join ##doger"
                % (ident)
            ).replace("%", Config.config["prefix"])
        )
开发者ID:Magicking,项目名称:Doger,代码行数:25,代码来源:Commands.py

示例7: tip

def tip(req, arg):
	"""%tip <target> <amount> - Sends 'amount' coins to the specified nickname. Nickname can be suffixed with @ and an account name, if you want to make sure you are tipping the correct person"""
	if len(arg) < 2:
		return req.reply(gethelp("tip"))
	to = arg[0]
	acct, toacct = Irc.account_names([req.nick, target_nick(to)])
	if not acct:
		return req.reply_private("You are not identified with freenode services (see /msg NickServ help)")
	if Transactions.lock(acct):
		return req.reply_private("Your account is currently locked")
	if not toacct:
		if toacct == None:
			return req.reply_private(target_nick(to) + " is not online")
		else:
			return req.reply_private(target_nick(to) + " is not identified with freenode services")
	if not target_verify(to, toacct):
		return req.reply_private("Account name mismatch")
	try:
		amount = parse_amount(arg[1], acct)
	except ValueError as e:
		return req.reply_private(str(e))
	token = Logger.token()
	try:
		Transactions.tip(token, acct, toacct, amount)
		if Irc.equal_nicks(req.nick, req.target):
			req.reply("Done [%s]" % (token))
		else:
			req.say(" %s tipped BITB%i to %s! (to claim /msg Beaner help) [%s]" % (req.nick, amount, target_nick(to), token))
		req.privmsg(target_nick(to), "%s has tipped you BITB%i (to claim /msg Beaner help) [%s]" % (req.nick, amount, token), priority = 10)
	except Transactions.NotEnoughMoney:
		req.reply_private("You tried to tip BITB%i but you only have BITB%i" % (amount, Transactions.balance(acct)))
开发者ID:Extrememist,项目名称:Doger,代码行数:31,代码来源:Commands.py

示例8: mtip

def mtip(req, arg):
	"""%mtip <targ1> <amt1> [<targ2> <amt2> ...] - Send multiple tips at once"""
	if not len(arg) or len(arg) % 2:
		return req.reply("%mtip <targ1> <amt1> [<targ2> <amt2> ...]")
	acct = Irc.account_names([req.nick])[0]
	if not acct:
		return req.reply_private("You are not identified with freenode services (see /msg NickServ help)")
	for i in range(0, len(arg), 2):
		try:
			if int(arg[i + 1]) <= 0:
				raise ValueError()
		except ValueError as e:
			req.reply_private(repr(arg[i + 1]) + " - invalid amount")
			return None
	targets = []
	amounts = []
	total = 0
	for i in range(0, len(arg), 2):
		target = arg[i]
		amount = int(arg[i + 1])
		amount = min(amount, 1000000000000)
		found = False
		for i in range(len(targets)):
			if Irc.equal_nicks(targets[i], target):
				amounts[i] += amount
				total += amount
				found = True
				break
		if not found:
			targets.append(target)
			amounts.append(amount)
			total += amount
	balance = Transactions.balance(acct)
	if total > balance:
		return req.reply_private("You tried to tip Ɖ%i but you only have Ɖ%i" % (total, balance))
	accounts = Irc.account_names(targets)
	totip = {}
	failed = ""
	tipped = ""
	for i in range(len(targets)):
		if accounts[i]:
			totip[accounts[i]] = amounts[i]
			tipped += " %s %d" % (targets[i], amounts[i])
		elif accounts[i] == None:
			failed += " %s (offline)" % (targets[i])
		else:
			failed += " %s (unidentified)" % (targets[i])
	with Logger.token() as token:
		try:
			Transactions.tip_multiple(acct, totip)
			token.log("t", "acct:%s mtipped: %s" % (acct, repr(totip)))
			tipped += " [%s]" % (token.id)
		except Transactions.NotEnoughMoney:
			return req.reply_private("You tried to tip Ɖ%i but you only have Ɖ%i" % (total, Transactions.balance(acct)))
	output = "Tipped:" + tipped
	if len(failed):
		output += "  Failed:" + failed
	req.reply(output)
开发者ID:hashfaster,项目名称:Doger,代码行数:58,代码来源:Commands.py

示例9: mtip

def mtip(req, arg):
    """%mtip <targ1> <amt1> [<targ2> <amt2> ...] - Send multiple tips at once"""
    if not len(arg) or len(arg) % 2:
        return req.reply(gethelp("mtip"))
    acct = Irc.account_names([req.nick])[0]
    if not acct:
        return req.reply_private("You are not identified with freenode services (see /msg NickServ help)")
    if Transactions.lock(acct):
        return req.reply_private("Your account is currently locked")
    for i in range(0, len(arg), 2):
        try:
            arg[i + 1] = parse_amount(arg[i + 1], acct)
        except ValueError as e:
            return req.reply_private(str(e))
    targets = []
    amounts = []
    total = 0
    for i in range(0, len(arg), 2):
        target = arg[i]
        amount = arg[i + 1]
        found = False
        for i in range(len(targets)):
            if Irc.equal_nicks(targets[i], target):
                amounts[i] += amount
                total += amount
                found = True
                break
        if not found:
            targets.append(target)
            amounts.append(amount)
            total += amount
    balance = Transactions.balance(acct)
    if total > balance:
        return req.reply_private("You tried to tip Ɖ%i but you only have Ɖ%i" % (total, balance))
    accounts = Irc.account_names([target_nick(target) for target in targets])
    totip = {}
    failed = ""
    tipped = ""
    for i in range(len(targets)):
        if accounts[i] == None:
            failed += " %s (offline)" % (target_nick(targets[i]))
        elif accounts[i] == False:
            failed += " %s (unidentified)" % (target_nick(targets[i]))
        elif not target_verify(targets[i], accounts[i]):
            failed += " %s (mismatch)" % (targets[i])
        else:
            totip[accounts[i]] = totip.get(accounts[i], 0) + amounts[i]
            tipped += " %s %d" % (target_nick(targets[i]), amounts[i])
    token = Logger.token()
    try:
        Transactions.tip_multiple(token, acct, totip)
        tipped += " [%s]" % (token)
    except Transactions.NotEnoughMoney:
        return req.reply_private("You tried to tip Ɖ%i but you only have Ɖ%i" % (total, Transactions.balance(acct)))
    output = "Tipped:" + tipped
    if len(failed):
        output += "  Failed:" + failed
    req.reply(output)
开发者ID:Magicking,项目名称:Doger,代码行数:58,代码来源:Commands.py

示例10: main

def main(args):
    global irc
    
    config = ConfigParser.ConfigParser()
    if (sys.argv != 2):
        cfile = "bot.conf"
    else:
        cfile = args[1]

    listener = Listener(IRC_RESTART, restartIRCHook)
    getEventManager().addListener(listener)

    __import__("plugins.logger")

    try:
        config.readfp(open(cfile))
    except:
        print "Error loading configuration file:", sys.exc_info()[1]
        sys.exit(1)

    host = config.get("main", "host")
    port = config.get("main", "port")
    channels = config.get("main", "channels")
    nick = config.get("main", "nick")

    print "Host: ", host
    print "Port: ", port
    print "Channels: ", channels

    channels = channels.split(",")
    
    port = int(port)
    
    for i in range(len(channels)):
        if channels[i][0] != '#':
            channels[i] = '#' + channels[i]

    getEventManager().start()

    irc = Irc(host, port, channels, nick)


    while running:
        try:
            i = raw_input()
            if i == "quit" or i == "exit":
                irc.disconnect()
                getEventManager().stop()
                break
        except KeyboardInterrupt:
            irc.disconnect()
            getEventManager().stop()
            break

    time.sleep(1)
    sys.exit()
开发者ID:flosspa,项目名称:FlossBot,代码行数:56,代码来源:main.py

示例11: message

def message(serv, source, target, text):
	host = Irc.get_host(source)
	Commands.Tracking.activity(source,target,serv)
	if target != serv.nick and source == '[email protected]' and 'tipped' in text and 'to dogesoak' in text.lower():
		try:
			usr = text.split()[1]
			req = Request(serv, target, usr)
			val = int(text.split('much ',1)[1][2:].split(' ',1)[0])
			try:
				Commands.soak(req,[str(val)])
			except:
				req.say('An error occurred.')
				#req.serv.send('PRIVMSG','Doger','tip ')
		except:
			print 'soaker error' 
	if Commands.lreq and target == serv.nick and source.split('!',1)[0] == 'Doger':
		Commands.balancerepl(text)
	if text[0] == '!' or target == serv.nick:
		if serv.is_ignored(host):
			print(serv.nick + ": (ignored) <" + Irc.get_nickname(source) + "> " + text)
			return
		print(serv.nick + ": <" + Irc.get_nickname(source) + "> " + text)
		t = time.time()
		score = serv.flood_score.get(host, (t, 0))
		score = max(score[1] + score[0] - t, 0) + 4
		if score > 40 and not serv.is_admin(source):
			serv.ignore(host, 240)
			serv.send("PRIVMSG", Irc.get_nickname(source), "You're sending commands too quickly. Your host is ignored for 240 seconds")
			return
		serv.flood_score[host] = (t, score)
		if text[0] == '!':
			text = text[1:]
		src = Irc.get_nickname(source)
		if target == serv.nick:
			reply = src
		else:
			reply = target
		if text.find(" ") == -1:
			command = text
			args = []
		else:
			command, args = text.split(" ", 1)
			args = args.split(" ")
		if command[0] != '_':
			cmd = Commands.commands.get(command.lower(), None)
			if not cmd.__doc__ or cmd.__doc__.find("admin") == -1 or serv.is_admin(source):
				if cmd:
					req = Request(serv, reply, source)
					try:
						ret = cmd(req, args)
					except Exception as e:
						type, value, tb = sys.exc_info()
						traceback.print_tb(tb)
						req.reply(repr(e))
开发者ID:red-green,项目名称:soaker-doge,代码行数:54,代码来源:Hooks.py

示例12: donate

def donate(req, arg):
	"""%donate <amount> - Donate 'amount' coins to the developers of this bot"""
	if len(arg) < 1:
		return req.reply(gethelp("donate"))
	acct = Irc.account_names([req.nick])[0]
	if not acct:
		return req.reply_private("You are not identified with freenode services (see /msg NickServ help)")
	if Transactions.lock(acct):
		return req.reply_private("Your account is currently locked")
	toacct = "mniip"
	if arg[0] == "all":
		arg[0] = str(Transactions.balance(acct))
	try:
		amount = float(arg[0])
		if math.isnan(amount):
			raise ValueError
	except ValueError as e:
		return req.reply_private(repr(arg[0]) + " - invalid amount")
	if amount > 1e12:
		return req.reply_private(repr(arg[0]) + " - invalid amount (value too large)")
	if amount < 1:
		return req.reply_private(repr(arg[0]) + " - invalid amount (should be 1 or more)")
	if not int(amount) == amount:
		return req.reply_private(repr(arg[0]) + " - invalid amount (should be integer)")
	amount = int(amount)
	token = Logger.token()
	try:
		Transactions.tip(token, acct, toacct, amount)
		req.reply("Donated Ɖ%i [%s]" % (amount, token))
		req.privmsg(toacct, "Such %s donated Ɖ%i [%s]" % (req.nick, amount, token), priority = 10)
	except Transactions.NotEnoughMoney:
		req.reply_private("You tried to donate Ɖ%i but you only have Ɖ%i" % (amount, Transactions.balance(acct)))
开发者ID:xeddmc,项目名称:Doger,代码行数:32,代码来源:Commands.py

示例13: _nick

def _nick(instance, source, newnick):
	nick = Irc.get_nickname(source)
	for channel in Global.account_cache:
		if nick in Global.account_cache[channel]:
			Global.account_cache[channel][newnick] = Global.account_cache[channel][nick]
			Logger.log("w", "%s -> %s in %s" % (nick, newnick, channel))
			del Global.account_cache[channel][nick]
开发者ID:hashfaster,项目名称:Doger,代码行数:7,代码来源:Hooks.py

示例14: withdraw

def withdraw(req, arg):
	"""%withdraw <address> [amount] - Sends 'amount' coins to the specified dogecoin address. If no amount specified, sends the whole balance"""
	if len(arg) == 0:
		return req.reply("%withdraw <address> [amount]")
	acct = Irc.account_names([req.nick])[0]
	if not acct:
		return req.reply_private("You are not identified with freenode services (see /msg NickServ help)")
	if len(arg) == 1:
		amount = max(Transactions.balance(acct) - 1, 1)
	else:
		try:
			amount = int(arg[1])
			if amount <= 0:
				raise ValueError()
			amount = min(amount, 1000000000000)
		except ValueError as e:
			req.reply_private(repr(arg[1]) + " - invalid amount")
			return None
	to = arg[0]
	if not Transactions.verify_address(to):
		return req.reply_private(to + " doesn't seem to be a valid dogecoin address")
	with Logger.token() as token:
		try:
			tx = Transactions.withdraw(acct, to, amount)
			token.log("t", "acct:%s withdrew %d, TX id is %s (acct:%s(%d))" % (acct, amount, tx, acct, Transactions.balance(acct)))
			req.reply("Coins have been sent, see http://dogechain.info/tx/%s [%s]" % (tx, token.id))
		except Transactions.NotEnoughMoney:
			req.reply_private("You tried to withdraw Ɖ%i (+Ɖ1 TX fee) but you only have Ɖ%i" % (amount, Transactions.balance(acct)))
		except Transactions.InsufficientFunds:
			token.log("te", "acct:%s tried to withdraw %d" % (acct, amount))
			req.reply("Something went wrong, report this to mniip [%s]" % (token.id))
开发者ID:hashfaster,项目名称:Doger,代码行数:31,代码来源:Commands.py

示例15: withdraw

def withdraw(req, arg):
	"""%withdraw <address> [amount] - Sends 'amount' coins to the specified dogecoin address. If no amount specified, sends the whole balance"""
	if len(arg) == 0:
		return req.reply(gethelp("withdraw"))
	acct = Irc.account_names([req.nick])[0]
	if not acct:
		return req.reply_private("You are not identified with freenode services (see /msg NickServ help)")
	if Transactions.lock(acct):
		return req.reply_private("Your account is currently locked")
	if len(arg) == 1:
		amount = max(Transactions.balance(acct) - 1, 1)
	else:
		try:
			amount = parse_amount(arg[1], acct, all_offset = -1)
		except ValueError as e:
			return req.reply_private(str(e))
	to = arg[0]
	if not Transactions.verify_address(to):
		return req.reply_private(to + " doesn't seem to be a valid dogecoin address")
	token = Logger.token()
	try:
		tx = Transactions.withdraw(token, acct, to, amount)
		req.reply("Coins have been sent, see http://dogechain.info/tx/%s [%s]" % (tx, token))
	except Transactions.NotEnoughMoney:
		req.reply_private("You tried to withdraw Ɖ%i (+Ɖ1 TX fee) but you only have Ɖ%i" % (amount, Transactions.balance(acct)))
	except Transactions.InsufficientFunds:
		req.reply("Something went wrong, report this to mniip [%s]" % (token))
		Logger.irclog("InsufficientFunds while executing '%s' from '%s'" % (req.text, req.nick))
开发者ID:justinvforvendetta,项目名称:Doger,代码行数:28,代码来源:Commands.py


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