Problem z wyświetleniem tekstu w EKG

0

Witam, ostanio zacząłem się uczyć Pythona, i postanowiłem napisać prostego bota GG, który zareaguję odpowiednio na daną komendę(czyli bot jak każdy inny). Mam problem, bo EKG wywala mi taki błąd: Traceback (most recent call last):
File "/home/xaxes/.gg/scripts/bot.py", line 23, in handle_msg
ekg.command("msg %s Twoj link do achivmenta", link%(uin))
TypeError: not all arguments converted during string formatting


Próbowałem kombinować z rzutowaniem typu(co pewnie widać), ale to nic nie dało.
Kod mojego programu:

-- coding: utf-8 --

import ekg
import urllib2

def init():
ekg.printf("generic","Zaladowano")
return 1
def deinit():
ekg.printf("generic","Usunieto")
return 1
def handle_msg(uin, name, msgclass, text, time, secure):
link = None
splitet = text.split(" ", 3)
if splitet[0] == "mc":
if splitet[1] != "help":
item = splitet[1]
tekst = splitet[2]
request = urllib2.Request('http://mag.racked.eu/api/imageurl.php?id='+item+'&text='+tekst)
response = urllib2.urlopen(request)
link = response.read()
link = str(link)
ekg.command("msg %s Twoj link do achivmenta", link%(uin))
else:
kiedys = "to zrobie"

1

Oj sieroto, sieroto. Jeżeli komenda ma mieć postać msg {id odbiorcy} {treść} to ekg.command("msg %s Twoj link do achivmenta %s", (uin, link)). Operator % dla stringów to odpowiednik printf, po lewej format string, po prawej pojedyncza wartość lub krotka albo słownik wartości:

print('pojedyncza %s' % 'wartość')
print('krotka z %s %s' % ('parą', 'wartości'))
print('słownik %(co)s %(naco)s' % {'co': 'mapujący', 'naco': 'wartości'})
0

Dzięki! Teraz wszystko działa.

1 użytkowników online, w tym zalogowanych: 0, gości: 1