2016-03-20 15 views
0

私のTelegramボットにRSSフィードを使って返信しようとしています。これについては、モジュールFeedparserを使用しています。今私はそれが動作するように管理してきましたが、ボットはフィード項目ごとに2つの別々のメッセージを送信します。最初のものはフィードのサマリーを持ち、もう1つはリンクを持っています。私は1つのメッセージでそれを送信するようにコードを変更したい。私は2つの異なる方法を試してみたが、どちらもエラーを思いついた。項目ごとに2 MSGとテレグラムボット&フィードパーサー - > reply rss 2の代わりにmsgを1つ入力してください

加工方法:Fix2

FIX1

elif text == "/news": 
      for i in range(3): 
       reply ((feed.entries[i].summary) 
         (feed.entries[i].link)) 

ERROR1

Traceback (most recent call last): 
File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1535, in __call__ 
rv = self.handle_exception(request, response, e) 
File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1529, in __call__ 
rv = self.router.dispatch(request, response) 
File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1278, in default_dispatcher 
return route.handler_adapter(request, response) 
File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1102, in __call__ 
return handler.dispatch() 
File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 572, in dispatch 
return self.handle_exception(e, self.app.debug) 
File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 570, in dispatch 
return method(*args, **kwargs) 
File "/base/data/home/apps/e~thalia-bot/1.391503855076259816/main.py", line 169, in post 
(feed.entries[i].link)) 
TypeError: 'unicode' object is not callable 

elif text == "/news": 
      for i in range(3): 
       reply (feed.entries[i].summary) 
       reply (feed.entries[i].link) 

は、私は修正が失敗しました

elif text == "/news": 
      for i in range(3): 
       reply (feed.entries[i].summary.link) 

私は私がここで間違ってやっていることはよく分からない誤差2

Traceback (most recent call last): 
File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1535, in __call__ 
rv = self.handle_exception(request, response, e) 
File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1529, in __call__ 
rv = self.router.dispatch(request, response) 
File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1278, in default_dispatcher 
return route.handler_adapter(request, response) 
File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1102, in __call__ 
return handler.dispatch() 
File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 572, in dispatch 
return self.handle_exception(e, self.app.debug) 
File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 570, in dispatch 
return method(*args, **kwargs) 
File "/base/data/home/apps/e~thalia-bot/1.391503917377816930/main.py", line 168, in post 
reply (feed.entries[i].summary.link) 
AttributeError: 'unicode' object has no attribute 'link' 

は、修正を試してみて、取得するには、エラーを見上げたが、まだ実用的なソリューションを見つけていません。誰かが私を正しい方向に向けることができれば感謝します。

答えて

1

あなたが次の行にリンクを持っているしたい場合は、「\ nを」(改行文字)で「{} {}」に空白を置き換えることができます

elif text == "/news": 
    for i in range(3): 
    reply("{} {}".format(feed.entries[i].summary, feed.entries[i].link)) 

を試すことができます。

関連する問題