FC2ブログ
  1. 無料アクセス解析

【プロデル】東方夜伽話でAND検索を行う

とりあえずアップロードされている作品の
・URL
・作品名
・作者
・タグ
・コメント数
あたりをさらっと取得してくるプログラムでも書いてみようと。
プロデルでやってみました。

起動直後。夜伽のアドレスは初期値で現在のアドレスを指しています。
変更があったときに対応できるように…。しないと思いますが。


取得ボタンを押すとただひたすらHTMLソースをスクレイピングして必要な項目を取ってきます。
2009111602.jpg

取得した結果をCSVに保存できます。
ファイル形式はそのままexcelで読めるようにしたかったんですが
タイトルに「,」を含む作品がざらにあるのでタブ区切りにしたところ
どうも後から「区切り文字」の指定をしなければならないようです。何とかならないかなあ。
2009111603.jpg

保存されたSCVファイル。
しかし、FC2の画像縮小機能は画質が悪い……
2009111604.jpg

で、こんなことして何ができるかというと
オートフィルタを使えば夜伽本サイト(というかMegalithというSS管理システム)では不可能な
「AND検索」が出来るんですね。
下記は
「作者が"みこう悠長"」AND「タグに"幻想散華"を含む」
を行った結果。
2009111605.jpg



まあ、だから何だというわけですが
閲覧支援ツールではAND検索が出来るようになればいいなと思ってのことでした。




ちなみにこのプロデル
ソースが日本語過ぎて凄く面白いです。
ここまで日本語として読めるレベルまで来ると感嘆の域。
詳細設計がそのまま動くほどのレベル。
2009111606.jpg


プロデルの実行可能形式生成がよくわからず巧く使えないのか
エラーが出てしまうので
まだプロデルの環境がある場所でしか稼動しません。残念。

【アマグラム】プロデルで夜伽専用閲覧支援ツール

プログラムの勉強をしたいなあっておもいおもい、そんな毎日。


「プロデル」っちゅう現在開発中の日本語プログラム言語があって。

大昔に教育実習に行ったときは
ダブルクリックすらままならない高校生に「ひまわり」で情報の授業をやってきた訳で
それを思い出してしまいます。

で、プロデル、なんですが
もう、ほとんど日本語。
詳細設計をコレに沿った記述テンプレで叩き込めば
むしろ詳細設計がそのまま動くレベル。

あと最初ッから統合開発環境的なものがある上に
デフォルトでexe作成(Win用)が出来るのが面白い。
コレってカジュアルにプログラムを楽しむには重要だと思う。

pythonから一気に興味がそれたw
これおもしろいww


面白おかしく
東方夜伽話専用閲覧支援ツールでも作ってみようかなと思って、
現在こんな感じ。

ウィンドウサイズとかかなり適当。

検索手段も夜伽と同じだけ用意しようかな。
検索オプションを入力して検索するとその結果のタイトルが左側にずらずらっと並んで
右にそのプレビューが見えるようになる。

リストから一つをダブルクリックしたら閲覧用のウィンドウが立ち上がって見れるようにしたい。
HTMLタグ埋め込んで表現してる人はご愁傷様です状態になりますが……。
そのためにブラウザで開くというオプションもいれときました。

下のボタンを押すと適当に1000文字刻みとかでざらっと内容を見れるようにしたいかなあ。

2009111102.jpg
機能的にはまあコレくらい用意したい。
検索結果のSSを選択した状態から、これくらいの機能を。
でもコレって右クリックメニューにしたほうが良いから、作り直そう。

まだあんまし制御とか作ってないんですけど
上の入力欄には最初「入力してくれ」てきなよくある感じに入力してあって
フォーカスがあうとクリアしても地色を黒に戻す
フォーカスがずれたときに入力が無ければ再び「入力してくれ」的な文字をいれなおす
な感じ。
2009111103.jpg

コンフィグ的なことも。
2009111104.jpg
ブラウザで開く際の、ブラウザを設定しておいたり
夜伽のURLが変更になったときにそれを修正したりできるように。前一度夜伽は引っ越してるので。
2009111105.jpg
ここで入力をした文字が、うざったいけど枚ドキュメントのiniファイルに保存される感じ。
レジストリは使えないので。
よって初回起動時というか、そのiniファイルがみつからない場合勝手に作るという荒っぽい手法。
2009111106.jpg


あとは何ですかね。
以前pythonで作ったコメント数の分析とかも盛り込んでいけたら面白そう。
後は新着コメントの管理とかしてみたいけどどうやるかな。
DB持つほどでかいアプリにしたくないから
iniファイルに巨大なプロパティ値を持つ羽目になりそう
それも嫌なんで困ってます。
帯びに短したすきに長し。
なんかこういうのに適した技術ないかなあ。


プログラムを勉強するのにモチベーションがいるので
夜伽をそのためのだしにしている感は否めません。
汎用的にやりたいことなんて既に巷にフリーソフトありますから。

【アマグラム】虫の報せサービス、開発中

紅楼夢→突貫色塗り
でどうやら酷く疲れていたらしい。

週末はblog更新できませんでした。
生きてはいたんですが。



本題


昔、IT関係で働き始めたばかりの頃
システムに不具合があったら担当者へメールを自動送信するというモジュールの
さらに部分的に、メールを送信する部分だけをJAVAで作ったことがあって

「メールってこんなに簡単に送れるものなのか」
と感心したものです。

で。
twitterでBOTというものが割りと面白半分に受け入れられている
(自分がMMORPGをやっていた頃は悪の権化的なものだったのでそこは少し驚き)
のを見て

「俺専用のリグルBOT」でも作ろうと思ったけど
面倒臭いというか全く知らない知識を追加しなければならなさそうだったので
(perlかrubyで作ることが多いらしい)
それは適当に調べたところでやめる。

朝、通勤中にちょっと知り合いにメールをして
そのメールに返信が帰ってきたら
心が安らいだという経験を得たので
「じゃあ定期的にメールをくれるリグル」
を作ろうと思ってぽちぽち遊んでる。

メールサーバなんてどうしようかと思ったら
都合よくgoogleがsmtp使わせてくれるらしいので
リグルっぽいgoogleメールのアカウントを取得してみた。
リグルそのものなアカウントは既に取得されていた。ちえ。


pythonのsmtplibとかいうライブラリでさくっと送れるのかなと思って組んでたら
なかなか進まない。
どうしてもエラーが出てしまう。

なんかmimeメールにするためのbase64変換の部分で
ライブラリがエラーを起こしているらしい。
こちらのメール内容の設定がおかしいのかと思って色々試してみたが
どうしても送れない。
ライブラリは公式のものだからライブラリは正しいのだろう

と思ったらweb探し回った結果こんな記事。
EAGLE雑記さま
……おおう。
やっぱり変換がおかしい?
詳しくはわからないのでこの通り修正したところ、送信できました。
まあいいや。

自分のhotmailにメール送信した結果。


エア嫁(♂)にも応用できそうである。

今のところ挨拶の部分だけ時間によって切り替えています。
他の部分は決め打ち。
そのうちTEXTファイル(iniに使用とは思いますが)から取得した言葉を
適当に組み合わせたりして送るようにしたいです。
あと、天気については天気予報サイトのRSSを読み取って変えられたらなと思っていたり。
もしRSS取得が出来れば電車の運行状況や、3時間後の天気なんかを織り交ぜて送ってくれる

コレを定期的に実行するようにタイマーで回せば「虫の報せサービス」が出来そうです。


しばらくして気づいた。
リグルから来る「Gmil」という事実。
hotmailなら蛍っぽいのだけど
今取得してもliveだし、msnってsmtp使わせてくれるか調べても居ない。
コレはよくない。

hotmailを一応調べてみる。
お、いけるじゃないか!
早速アカウントを取得。
@hotmail~が選択できる上に
リグルそのものの名前が余っているではないか。

即座にプログラム改変。
gmailはアカウント開放。
結果。
2009101802.jpg
正しくほたるメールが届きました。
よかった。
このまま先に進めるとします。


プログラマじゃない私にはちょっと遠大な計画。

しかし少しプログラム勉強しないとなあ。

【東方夜伽用】コメント増加チェックPGつくろうかな

読者さんの中には
大分経ってからコメントをちょろっと残してくれる方も
たまにいるようだと
この間知りました。
いきなり半年以上前の作品にコメントが残っていて
反応がかなり遅れてしまった。

というのも
作品数が増えてくると
前にその作品に対していくつコメントが残っていたのか
覚えていられなくなってくるからだ。
10前後のときは大体覚えてたんだけど
20超えたのでもう無理。

というわけで、
昔作った
コメント数集計プログラムに

実行すると
コメント配列 [作品名,コメント数]
を取得してテキストに吐き出して保存、
直前のそれと比較する

でも追加してみようかなと

思っては見たけど
プログラマでもない私には
アルゴリズムはかけても
コーディングの道のりが長そうです。

それとも各作品の後書きのあたりにでも
勝手にRSSフィードぶち込んだほうが早いだろうか。
(可能かどうかは未検証)



久しぶりにコメント集計プログラムを実行してみたら動かない。
あれ?なんで?
とおもったら
夜伽のアドレスが変わっていたことを思い出した。
そういえばコレを作った当初はまだ今のアドレスではなかったんだなあ。
ずいぶん昔のことのように思える。

とりあえずURLを修正。
分散の算出方法が違った気がするのでそれも修正。


夜伽作者でpython3使える環境にある人なんて
ほとんどいないんだろうなあと。おもいつつ。
私もいれてあるだけで遣ってはいないんですが。
プログラムとか勉強してみたいけど。

実効結果:---------------------------------
作者名に「みこう」が含まれる作品の
作品数:21
最大:56
最小:5
合計:262
平均:12.4761904762
中央値:10
分散:90.2058093079
-------------------------------------------

分散を見てわかる通り
最大値がノイズ過ぎてまともな結果にならん。
(最大値を出している作品が特殊な例な為)

中央値10、平均値12は
ここ数作だけ取れば満たしてるかな。

オリキャラ+不人気キャラのリグルで書いて
コメント数が2桁いくと思っていなかったんだけどいってくれた。

安定してコメント数2桁いただければ
自分の文も安定してるということになるかなあ。
と思ってる。

15は夢。

まあ、コーディングは気が向いたらやります。

【アマグラム】テキストエディタ未満

pythonのtkinterで
GUIプログラムを始めたいと思いつつも
私は
今一つクラス設計とかがわからない。



それがわからないので
初心者用の解説際との言っている意味も
雑音が多すぎてわかりにくい。

人に者を教えるとき
Aを教えるのに
A以外の要素は極力排除すべきだと思うんだ。

まあクラス設計とか基礎中の基礎で
呼吸するくらいの勢いで出来ないとダメ
ってことなんでしょうけど

何で最近の言語の解説してるサイト(一部出版物も含むが)は
特にダイナミック言語に多い気がするんだけど
やたらめったらクラス分け(もしくは細切れに細かい関数化)
したサンプルコードばかり提示するんだろう。

そこのトピックは
Tk配下のウィジェットの説明じゃないのかよ。
ここのコーナーは
文字列操作の話が中心じゃないのかよ。

私があんまりわかってないってのが原因なんだろうけど
教科書を難解にしても初学者が諦めるだけだと思うんだよな。

「ダイナミック言語は特にその辺りが重要だから出直してこい」
って言う暗示なのかな。



そんな門番の言葉に負けないように
一行入力テキストエディタをぺたぺた作ってます。
使わないけど。



1文字以上入力してenterを押すと下に反映されます。
「\n」単独で入力すると改行します。
「-」のみで構成された文字列を入力すると
「-」の数だけ末尾の文字を消します。
「\」以下が「-」のみで構成された文字列を入力すると
「\」以下に並んだ「-」の個数だけ「-」を反映します。
「\」のみ入力すると「\」のみ反映されます。
「\n」と反映したいときは
「\」「n」別々に入力して下さい。
こんなところ。

保存?ねーよww
文字列へのランダムアクセスもできません。
\sで保存、\dで最終行削除、\cで全消去
くらいささくっと実装してしまおう。
保存とかよくわからんけどw
「-」の繰り返しを数字指定できるようにもしたいな。
あと文字の中央揃えも解除できるだろうか。調べてないけど。
textウィジェットなしでも面白いもの作れるなあ。
使い道無いけど。

ちなみにこの文字列
labelに無理矢理ぶち込んでるんだけど
labelのtextって文字数制限ありそうだなあw