2011-07-04
AvsP 日本語化ファイルを使うと AvsPmod v2.2.0 がクラッシュする問題に対応(暫定)
しばらく更新していなかった AvsP 用の日本語化ファイルですが、AvsPmod v2.2.0 で不具合が発生するようになったようです。
AvsPmodを2.2.0に更新したらErrorで起動しない.なんでかなと思ったらどうも日本語化用言語ファイルが原因くさい.2.1.8まではavisynth.infoにあるniiyanさんのAvsP日本語化用言語ファイルで日本語化できるけど2.2.0は起動すらしない.
https://twitter.com/#!/K4095/statuses/86665451949654017
ためしに AvsPmod v2.2.0 に AvsP v2.0.2 用の日本語化ファイルを入れてみたところ、たしかに AvsPmod が強制終了しました。
エラーのログを見ても原因がよくわからなかったのですが、たまたま原因とおぼしき箇所を発見したので、さきほど修正したファイルをアップしました。
https://skydrive.live.com/redir.aspx?cid=adc0ad43e645aeed&resid=ADC0AD43E645AEED!105
avsp_ja_v2.0.2_rev2 というのが新しくアップしたものです。一度、お試しください。
今回の更新は、クラッシュを防ぐための暫定的なものです。問題の箇所以外は変更していませんので、一部のメニューは未訳のままとなっています。あらかじめ、ご了承ください。
ちなみに、問題の箇所は、
"Zoom" : u"ズーム",
でした。
この部分の日本語訳を削除すると、AvsPmod が起動するようになりました。
2010-07-05 22:58 追記
AvsPmod の開発者の一人である ANGEL_SU 氏によると、今回の問題は AvsPmod v2.2.0 のバグだとのことです。次のバージョンでは修正されるものと思われます。
以下、引用です:
@niiyan
My bad. It is actually a bug in AvsPmod v2.2.0. Thanks for your report.
http://forum.doom9.org/showthread.php?p=1511634#post1511634
クリック: 2回
2011-05-25
tweepy を使って Twitter API で検索
Python, プログラミング, Twitter, API, tweepy
とりあえず AviSynth 関連のツイートを取得することを目的としているので、Twitter API で検索する方法を調べた。
tweepy v1.5 documentation*1 によると、API.search() で検索ができるらしい。戻り値は、SearchResult オブジェクトのリスト(JSON ではない)。
以前保存しておいた tweepy v1.5 のドキュメントから引用(少し古いバージョンのものです):
API.search(q[, lang][, locale][, rpp][, page][, since_id][, geocode][, show_user])
Returns tweets that match a specified query.
Parameters:
q – the search query string
lang – Restricts tweets to the given language, given by an ISO 639-1 code.
locale – Specify the language of the query you are sending. This is intended for language-specific clients and the default should work in the majority of cases.
rpp – The number of tweets to return per page, up to a max of 100.
page – The page number (starting at 1) to return, up to a max of roughly 1500 results (based on rpp * page.
geocode – Returns tweets by users located within a given radius of the given latitude/longitude. The location is preferentially taking from the Geotagging API, but will fall back to their Twitter profile. The parameter value is specified by “latitide,longitude,radius”, where radius units must be specified as either “mi” (miles) or “km” (kilometers). Note that you cannot use the near operator via the API to geocode arbitrary locations; however you can use this geocode parameter to search near geocodes directly.
show_user – When true, prepends “<user>:” to the beginning of the tweet. This is useful for readers that do not display Atom’s author field. The default is false.
Return type:
list of SearchResult objects
SearchResult オブジェクトがどんな属性を持っているのか tweepy のドキュメントを見てもわからず、小一時間調べる。python - Tweepy API: how to get a user’s id from a status SearchResult object? - Stack Overflow とかで一部わかったが、まだ全体は見えず。
よくよく考えてみると、Twitter の API を使いやすくしているライブラリなんだから、Twitter の API のドキュメントを見ればいいかも、と気づく。
全部使えるわけではないみたいだけど、「Example requests」のところが参考になった。
# モジュールのインポート import tweepy import urllib # URL エンコード # Twitter の認証を行う # auth = tweepy.OAuthHandler(consumer_key, consumer_secret) # auth.set_access_token(access_key, access_secret) # api = tweepy.API(auth) api = tweepy.API() # Search API は認証不要 # 検索 query = u"foo" # クエリ results = api.search(urllib.quote_plus(query.encode('utf-8'))) # 結果を整形 for result in results: print result.text # とりあえず表示するだけ
こんな感じで、つぶやきの本文を取り出すことはできた。
GET search | dev.twitter.com によると、Requires Authentication が false になっているので、Search API を使うだけなら認証は必要ないみたい。
また、クエリは URL エンコード必須で、複数のクエリを使用する場合は + で連結する必要がある。そのため、urllib.quote_plus() を使っている。OR 検索の場合は、"abc+OR+def" になる。
次回からは、
をやる予定。
参考にしたページ
2011-05-18
tweepy ライブラリのインストール
Python, GAE, プログラミング, Twitter, tweepy, web2py
Twitter の API を利用するにあたって、tweepy を使うことにしました。以下、インストールしたときのメモです。
ダウンロード〜インストール
tweepy/tweepy - GitHub からソースをダウンロード。
joshthecoder-tweepy-X.X.X-XX-XXXXXXXX.zip (または .tar.gz)を解凍して、tweepy フォルダをまるごと web2py/site-packages にコピーする。
bundle with your application
----------------------------
You may also download a source archive or checkout via Git.
Then just include the tweepy package folder inside your application's source folder.
json モジュールへのパスを通す
» Google App EngineでTwitterを活用する: エスキュービズム ラボ Blog によると、json モジュールへのパスを通す必要があるらしい。
tweepy/utils.py にある import_simplejson 関数を見てみる。
def import_simplejson(): try: import simplejson as json except ImportError: try: import json # Python 2.6+ except ImportError: try: from django.utils import simplejson as json # Google App Engine except ImportError: raise ImportError, "Can't load a json library" return json
Google App Engine (GAE)用に django からインポートする処理が含まれている。
このままではエラーが出たので、gluon.contrib.simplejson からインポートするようにした。
except ImportError:
try:
from gluon.contrib import simplejson as json # Google App Engine
except ImportError:
raise ImportError, "Can't load a json library"
これも ImportError が出たが、サーバーとブラウザを再起動したら、エラーは出なくなった。
tweepy がインポートできない
ここでいったん wev2py のサーバーをストップ。ためしに GAE のサーバーを起動してみると、今度は tweepy 自体インポートできない。
ImportError: No module named tweepy
調べてみると、site-packages からのインポートができないという話題が見つかった。
importing modules from site-packages on GAE - web2py-users | Google グループ
ここに投稿されていた次のコードを gaehandler.py に追加すると、GAE のローカルサーバーではエラーが出なくなった(ように見えた)。
sys.path.append(os.path.dirname(__file__))
sys.path.append(os.path.join(os.path.dirname(__file__),'site- packages'))
上のコード追加は関係ない?
上述のように gaehandler.py にコードを追加すると tweepy モジュールがインポートできるようになった……と思ったのですが、毎回ではないものの、その後も GAE の開発環境で tweepy がインポートできない旨のエラーが出ることがありました。
その場合に、gaehandler.py を変更なしで上書き保存しただけで動くようになったりしたので、上のコードの追加は関係なかったのかもしれません(実際、今は追加したコードを削除した状態で問題なく使えています)。
そしてエラーが出なくなった
いつからかわかりませんが、開発をつづけるうちに ImportError に遭遇することがなくなりました。上で追加したコードは削除した状態です。
なぜエラーが出なくなったのか。理由はよくわからないのですが、エラーが出なくなった頃に以前と変えたことといえば、次の 2 つが思い当たります。
- web2py と GAE、両方の開発環境を切り替えながら使っていたが、GAE の開発環境だけを使うようにした。
- 以前は管理者用のスクリプトからのみ tweepy をインポートしていたが、一般公開用の方でもインポートするようになった。
追記
2011-05-19 0:08
tweepy のページの URL が変更になっていたようなので、修正。
2011-05-16
Twitter にアプリを登録する
この時点ではまだトップページしか存在しないが、OAuth を使った部分を作成するためには、まずアプリを登録する必要がある。
以下、登録にあたって参考にしたページ。
- ASCII.jp:ゼロから分かる、GAE&Twitter API開発の始め方|Twitter&Google App Engineで始めるWebプログラミング入門
- PHPでTwitter APIのOAuthを使う方法まとめ - 頭ん中
- PHP+OAuthでTwitter - SDN Project
- よつばのクローバー
2011-05-15
web2py 導入メモ(5): デフォルトの URL を変更する
http://foo.example.com/ にアクセスしたときに、http://foo.example.com/welcome/default/index にリダイレクトされてしまう。これを http://foo.example.com/ のままにしたい。
調べたところ、router.py または routes.py のどちらかで設定すれば、デフォルトの URL を変更できるらしいことがわかった(どこで見たかは忘れた)。
web2py のトップディレクトリに router.example.py と routes.example.py という 2 つのサンプルが含まれているので、これを参考にするといい。どちらを使えばいいのかわからなかったが、とりあえず routes.py で設定したらうまく行ったっぽい。
- routes.example.py を routes.py にリネーム
- default_application が welcome になっているので、これを自分のアプリ名に変更
- 関係なさそうな行はコメントアウト
こんな感じ。
実際には default_application 以外にも設定できるところがあるので、これでは不完全なのかもしれない。しかし、いろいろいじってもうまく行かなかったので、とりあえずはこのままで。また後日調べ直す予定。


RSS
Twitter