Python

2024年9月26日 (木)

Pythonスクリプト:久々にスクリプトを弄った(PyBookGet_115_0)

2024-09-26(木)晴れ/曇り、夕方から曇り

 何日間か、久々にPythonスクリプトを弄りました。久々に動かしてみたら動かないので対策しようとしました。動かなくなっていたところを探して修正しようとしたのですが、すっかり忘れていました。忘れているのは、対象のPythonスクリプトの中の作りとPythonの仕様です。

 WEB小説は、主に「小説家になろう」サイトのものを、Nokia携帯電話のPythonスクリプト「PyBookGet」でダウンロードして、「ChainLP」というアプリで縦書きPDFファイルにして、Sony Readerで読んでいます。
 このダウンロード時に、HTMLテキストから必要な部分を検出して小説のテキストを取り出したり、必要な形に編集します。それにはHTMLタグを検出して行います。調べてみたら、この、前書き部分、小説本文、後書き部分などを示すタグ部分の記述が変更されていました。それで、動かなくなったわけです。Pythonスクリプトにトレース用のprint文を入れて調査しました。何とか調査して、対応させることができました。
 このスクリプトは、前回変更したときにドキュメントを記述してなかったので、段々と分かりにくくなってきています。段々と困りそうだなと思った日でした。

 

| | コメント (0)

2024年5月 9日 (木)

Pythonスクリプト:久々にスクリプトを弄った(PyBookGet_114_0)

2024-05-09(木)曇り/晴れ、朝は小雨

 久々にPythonスクリプトを弄りました。動かなくなっていたところを修正しようとしたのですが、すっかり忘れていました。忘れているのは、対象のPythonスクリプトの中とPythonの仕様です。

 WEB小説は、主に「小説家になろう」サイトのものを、Pythonスクリプト「PyBookGet」でダウンロードして、「ChainLP」というアプリで縦書きPDFファイルにして、Sony Readerで読んでいます。このダウンロード時に、HTMLのルビタグ部分を検出して青空文庫のルビフォーマットにしています。これで、PDFファイル化したときにルビになります。
 この、HTMLのルビタグから青空文庫のルビフォーマットへの変換がうまくいかなくなったようです。HTMLのままのファイルを覗いて調べたところ、ルビタグの使用方法が変わったようでした。具体的に言うと<rb>と</rb>のタグが使用されなくなったようです。

--------------------------------------------------------------------
以前のルビタグ
<ruby><rb>国王陛下</rb><rp>(</rp><rt>父上</rt><rp>)</rp></ruby>、

現在のルビタグ
<ruby>国王陛下<rp>(</rp><rt>父上</rt><rp>)</rp></ruby>、

青空文庫のルビフォーマット
|国王陛下《父上》

---------------------------------------------------------------------

 スクリプトでは<rb>、</rb>がある前提で検索しているので検索できなくなったわけです。とりあえず、有っても無くても動くようにしました。
 このスクリプトは、前回変更したときにドキュメントを記述してあったので分かりましたが、ドキュメントを記述してないスクリプトは困りそうだなと思った日でした。

 

| | コメント (0)

2022年11月 4日 (金)

Pythonスクリプト:久々にスクリプトの整理(PyRemoteCam)

2022-11-04(金)晴れ

 昨日の続きです。Pythonスクリプトのファイルを整理したのですが、昨日の記事中の分類で(3)に相当するスクリプトが一つあります。すなわち、作ってテストは終わったけど実際に使用することなく、そのまま放置したものです。ドキュメントを書いてないので、詳細を忘れています。あちこちのメモをかき集めて、何とか思いだしました。
スクリプト名:PyRemoteCam
説明:リモートカメラの略です。目的は庭に餌を出しておいて、寄ってくる小鳥の写真を撮るためでした。小鳥が寄ってきても視線やカメラを向けると逃げてしまうので、リモート操作で撮ろうというものです。
 このスクリプトを起動した携帯電話のカメラを餌の場所に向けて設置して置き、小鳥がいるときに、別の携帯電話からSMSでコマンドを送って撮影するものです。
(1)カメラ側(SMS受信側)での機能:SMSを受信すると、その中に記述されたコマンドを順次実行する。コマンドは
  ・Configデータ設定
  ・写真撮影コマンド(指定サイズで、t秒間隔でy枚撮影する。t、yなどは数値で指定)
  ・ビデオ撮影コマンド(t秒間隔で、x秒撮影する、撮影回数はy回)
  ・撮影結果を指定のサーバにアップロードする。
  ・実行結果をSMSで報告する。
  ・コマンド動作中断
  ・スクリプト終了

(2)手元側(コマンドのSMS送信側)
  ・コマンドのSMSを簡単に作成し送信する機能
  ・作成したコマンドSMSを実行してみるテスト機能

動作させてみた画面です。

Ssce0792 Ssce0793
 左がメインメニュー画面で、Standb by がカメラ側の動作開始です。右の画面がStand by 動作中画面です。

Ssce0791

 コマンド送信用のSMS作成画面です。
 思い出したので、忘れないうちにドキュメントを、、と思いながら、重い腰が上がっていません。この記事と、アプリ中のHelp画面がドキュメントで良いかとも思い始めたところです。

 

| | コメント (0)

2022年11月 3日 (木)

Pythonスクリプト:久々にスクリプトの整理

2022-11-03(木)晴れ

 Nokiaの携帯電話では、Pythonスクリプトで作成した色々なアプリを使用しています。必要に迫られて作成したもの、興味本位で作成したものなど動機や出来具合は色々で、玉石混淆ではあります。でも、色々と便利に使っています。Pythonスクリプトが動く携帯電話自体は古いので3Gサービスまでしかサポートされていません。あと、1年少しで3Gサービスが無くなる(SBM社の場合)ので通話など通信には使用できなくなりますが、使っているアプリのことを考えると手放せそうもありません。

 久しぶりにPythonスクリプトの整理をしてみました。もう長いことPythonスクリプトをいじっていないのでリストを見ても、すぐには理解できなくなっています。困ったものです。スクリプトの状態も色々です。
(1)動かなくなったが、使いそうもないので放ってあるもの
(2)動かなくなったものを動くようにしたが、ドキュメントなどを修正してない、
    あるいは「Pythonスクリプト雑記」に掲載していないもの。
(3)作成してテストはしたが、あまり使いそうもないのでドキュメントも作成してないもの

 特に(3)は仕様や使い方を忘れてしまいそうです。スクリプトは使用しやすいように、「スクリプト起動用スクリプト」のインストールモジュール「PyMyShell」を作成してインストールし、スクリプトの一覧を使って起動するようにしています。まずは、それが問題なく起動するか確認、リストを修正しました。

Ssce0795 Ssce0796

 色々と増えて、46項目も登録しています。電話帳、ノートNdb、ノートNdbViewer、年号換算、買い物リスト、あたりはないと日常生活に困りそうです。

Ssce0797

 動かなくなっているものもあります。WEBサイトのデータを持ってきて使うものは、WEBサイトの画面フォーマットが変わったり、httpでのアクセスができなくなったりしたためのようです。携帯電話やPythonスクリプトが古いので、httpsでのアクセスができないからです。WEBニュースとか株価ニュース、為替データサイトなどのスクリプトが動かないようです。もう使いそうもないので、起動リストに「×」印を付けておくだけにしました。段々、手抜きが増えてきます。

 

| | コメント (0)

2022年2月14日 (月)

Python: 天気予報をみるスクリプトを更新した PyStnWeather 1_01 補遺

2022-02-14(月)朝は小雨、のち曇り/晴れ

 昨日の記事での題記スクリプトの件では、「雪か雨」のような予報の「か」の部分の表示アイコンとして使用するのに、/にするか|にするか迷っていました。実際の使用時ではどちらでも良いような気もしますが、何となく、刺さった小さなとげのように居心地が悪い気がしました。
 ということで、自分なりに仕様を決めてみて、|を使用することにしました。備忘録としても使用しているブログなので、下に表で記録しておくことにしました。

Yohoaikon0

コピーしてあった過去データでテストランしてテストしました。下の画像がテスト結果で、予報の内容どおりに表示でき、判断しやすくなりました。

Ssce0778a


 関連:Python スクリプト雑記

 

| | コメント (0)

2022年2月13日 (日)

Python: 天気予報をみるスクリプトを更新した PyStnWeather 1_01

2022-02-13(日)曇り、夜から雨

 Nokia携帯電話の待ち受け画面に今日、明日の天気予報を表示するPythonスクリプトが対応できていない天気予報が出てきたと、昨日書きました。中身を調べて修正したものか、そのままとするか、ちょっと迷いました。調べて直すのも面倒ですしね。まるっきり誤動作してしまうわけではなく、対応していない予報内容ですと表示していますので、そのままでも、さして困らないですし、、、。
 と思っていたのですが、、、段々と気になってきました。誤動作ではなくても、動作していないない内容があると気になるものです。ということで、調べて修正しました。もはや、自分しか使うこともないスクリプトですが、、。

Ssce0776a Ssce0777

 左の図で、13日の表示の右側のアイコン表示が、きちんと天気予報の内容になっています。簡略化編集したデータをブラウザで見るスクリプトで見ても、右のように画像が出ています。
 とりあえず問題なさそうですが、「雪か雨」の「か」の部分を「雪/雨」とするか「雪|雨」とすべきか(スラッシュと縦棒の違い)迷っています。/は今まで「晴一時雨」(「晴/雨」)のように「一時」の意味のところで使っていたので気になるんですよね。細かいところにこだわってしまう癖は抜けないようです。とりあえず、日々の使用で困ることはなくなりました。

どこかへ記録しておかないと自分でも分からなくなるので、いずれ「Python スクリプト雑記」へ記入するつもりです。(面倒で保留されているものも、いくつもありますが、、。

 モジュール 天気予報をみるスクリプト PyStnWeather 1_01

 

| | コメント (0)

2022年2月12日 (土)

Python 天気予報を見るスクリプトで対応できていない天候 

2022-02-12(土)晴れ

 日本海側は沢山雪が降っているようですが、関東範囲の当地では、今まではほとんど降っていませんでした。明日は雨か雪が降りそうな予報です。ただ、雨か雪かは分からないような予報でした。

 今日・明日の天気は、Python言語で作成したスクリプト(PyStnWeather)を携帯電話に入れて、予報を待ち受け画面に表示させてみています。前記のような予報が出てきたからか、何年振りかで、アイコン表示できない予報になりました。

Ssce0774a  Ssce0775

 左の画像の「13日」の表示の右側の二本線のアイコンが、「対応していないので表示できない予報で~す、、」という意味です。同じように簡略化した天気予報データをブラウザでみるスクリプトを使って表示させたら「晴のち雪か雨」という予報でした。こちらも画像表示はできていません(代替文字表示で予報内容は分かりますが)。この、「雪か雨」という予報が今まで(スクリプトを作った何年か前には)なかったのですが、いつ頃からか追加されたようです。
 予報としては、今までは 1晴、2晴/曇、~ 30吹雪(暴風雪)の30種でしたが、31晴/雨または雪 ~ 44雪または雨のち曇 が追加されたようです。
 思い出しながらスクリプトをチェックして対応させるか、めったにない予報だから現状の「不明で~す」アイコン表示で我慢するか悩んでいます。

 

| | コメント (0)

2021年4月18日 (日)

Python: WEB小説のデータ取得スクリプト PyBookGet 更新 V1_13(0)

2021-04-18(日)晴れ

 「一昨日の記事」の続きです。一昨日の段階では、題名を「Python: WEB小説ダウンロード用スクリプトが動かなくなった その2」とするつもりでしたが、後日検索するときのことを考えて、本日の題名としました。

 さて、「なろう」サイトの小説テキストページが https のみになった対応としては、「プロキシもどき」を介してアクセスすることにしました。これを経由すれば、携帯電話からはhttpでアクセスしても動くので、今まで通りの携帯電話、Pythonのバージョンで使うことができます。(携帯電話から直接アクセスするのは「プロキシもどき」です。そこから先のhttps通信は「プロキシもどき」がやってくれるわけです。)

 ということで、PyBookGet のWEBアクセスのところ(URL を送出するところ)の手前に、 URL を編集する処理を入れました。
 例えば、今までの送出URLが  "https://小説ページのURL"   とすると
     "http://サーバ/プロキシもどき.cgi?url="       を追加して
     "http://サーバ/プロキシもどき.cgi?url=https://小説ページのURL" を送出します。
この編集だけで、今までの環境で動くようになりました。もう変更するようなことがないといいなあと思いました。

------------------------------------------------------------------
  モジュール  PyBookGet_113_0.zip 

  関連記事 「Python スクリプト雑記 PyBookGet
------------------------------------------------------------------

 

| | コメント (0)

2021年4月16日 (金)

Python: WEB小説ダウンロード用スクリプトが動かなくなった その1

2021-04-16(金)曇り

 昨日、WEB小説ダウンロード用スクリプトが動かなくなりました。先日、2年ぶりに思い出しながらスクリプト(PyNoteNdbView)をいじったばかりですが、また思い出しながらいじることになりました。

 「小説家になろう」サイトのWEB小説で、面白そうなのが見つかると結構読んでいます。小説書き始めの方も、かなり沢山書いている方もいて(個人的、趣味的判断で)玉石混交ですが、面白いのもあります。PCのブラウザで読むと、机の前に張り付きになりますから、まとめててテキストファイルにダウンロードし、縦書きPDFに変換して、ブックリーダで読んでいます。ブックリーダなら持ち歩きも簡単ですし、バッテリーの心配もありません。
 この、テキストファイルへのダウンロードには、携帯電話に入れたPython スクリプト「PyBookGet」で行っています。ダウンロードの時に、余分な空行の削除とか、記号やルビの変換なども行っているので重宝しています。
 さて、昨日の午前中に一つダウンロードしたのですが、その時は動きました。昼食後に再度ダウンロードしようとしたら動きません。エラーメッセージも出ない強制終了なので、原因が分かりません。仕方がないので、スクリプトのあちこちにトレース用の「プリント文」と「ウエイト文」を埋め込んで、動きを追跡してみました。WEBへアクセスしたところでダウンしていました。

  PyBookGet作成時に書いたブログ記事(ずいぶんたくさんあった)を調べたら、同じような内容がありました。
    過去の記事「Python: WEB小説のデータ取得スクリプト PyBookGet 使用上の注意が必要になった
 スクリプトが http での動作しかサポートしていないときに、相手の応答が https でのものだった時にダウンしてしまうものでした。
過去の記事の時は、「なろうサイト」は http でも https でも動いていました。昨日の午後調べたときは、httpでアクセスしても、すべてhttpsでの動作になるようでした。多分、昼頃にサイトのメンテナンスがあり、https一本になったのではないかと推測しました。
 Nokia携帯電話のPythonは
  (1)「OSがS60 5th の機種」でかつ「Python 2.0.0」のときは http  とhttpsが動作可
  (2)上記以外(S60 3rd OS あるいは Python 1.4.x )のときは http のみ
となっています。(1)の時は少し遅いので、(2)の環境で使用していました。このため、上記記事の時と同じで、動かなくなったもののようです。
 さて、ダウンロードできないと困るので、対策検討を行いました。
 対策1:素直に上記(1)の環境で使う。
  一番素直ですが、使える携帯電話が限られたり、Python 2.0.0をインストールしないといけない。
  また、Python 2.0.0 より Python 1.4.x のほうが使いやすいように思います。

 対策2:以前作成した「プロキシのようなもの(またはhttp 変換?)」サーバを介してアクセスする。
  動作のイメージは下のようになります。

-----------------------------------------------------------------------------------
 携帯電話(スクリプト) →http→ プロキシもどき →https→ 「なろうサイト」
               ←応答←           ←応答←  
-----------------------------------------------------------------------------------

 即ち、プロキシもどきのところでhttp とhttps の間の変換が行われます。スクリプトのWEBアクセスのところでURLを無理やり書き換えて動かしてみたら、ダウンせずに応答を受け取れたので、きちんと改造すれば動きそうです。
 ということで、思い出しながらリストを見て改造、テスト、ドキュメント作成、、となりました。
(続く)

 

| | コメント (0)

2021年4月 6日 (火)

Python: ID、パスワードなどの保存/管理と持ち歩きはどうするか その2

2021-04-06(火)晴れ/風冷たく強い

 前回は、Python スクリプト 「PyNoteNdb」 をパスワード管理に使用することにして、ダミーデータを入れてみました。そのままでも使えないことはありませんが、表示関係を少し手直しすることにしました。一番の目的は、表示中に、うっかりキー入力してしまって書き換えてしまうことを防止することです。
 そこで、改造点としては
 (1)リスト画面での、各行の表示文字を増やす(先頭の日時表示をなくす)
 (2)普通に表示した画面では編集はできないようにする(うっかり、書き換えてしまうことを防ぐ)。

 やっとリストを見始めましたが、すっかり忘れています。もう、何年も、少なくとも2年はPython スクリプトのリストを見ていなかったなあと思いました。かさかさの脳みそを絞って、何とか修正できました。
 流用前のもの:PyNoteNdb .py
 新しいものを:PyNoteNdb View としました。

 すなわち
   PyNoteNdb   →メモの記入、編集がメインの機能
   PyNoteNdbView →メモ(パスワードなど)の閲覧がメインの機能
という使い分けです。データベースファイルは別にすることも、一緒にすることもできます。

Ssce0769  Ssce0771
  PyNoteNdb         PyNoteNdbView

 項目のリスト画面です。左が従来のもの、右が修正後です。日付とか時刻なんて必要になったことがないから、項目の文字数が多いほうがわかりやすくていいかなと思いました。

Ssce0770a  Ssce0768
  PyNoteNdb         PyNoteNdbView

 項目データ表示画面です。内容は同じですが、裏のステータスが違います。私のスクリプトシリーズでは、緑色の表示画面は編集可能(内容が保存書き込みされる)、黒の表示画面は編集できない画面になっています。なお、PyNoteNdbViewでも編集、修正はできます。あくまでメイン画面ではなく、意図してメニューから開いた編集画面で行います。これで、閲覧中にうっかりキーに触ってしまっても大丈夫です。

 これで、何とかできあがりました。さて、実際のデータを入れ込むかどうかは、まだこれからの決断ですが、とりあえずツールができて安心してしまいました。

-------------------------------------------------------------------------------------
 モジュールは以前と同じく、「Python スクリプト雑記」の「4.2 PyNoteNdbView」 に張り付けました(自分のためのバックアップの意味を持っています)。 「Python スクリプト雑記」 の更新履歴を見たら、更新は前回から、ちょうど丸2年でした。

 


 

| | コメント (5)

より以前の記事一覧