コメント

  • 投稿設定が「一行目:タイトル 二行目以降:本文」になっていますが、 「一行目:タイトル 一行目以降(一行目含む):本文 」の形で投稿するオプションがあると嬉しいです。 - 名無しさん 2013-12-13 19:49:37
  • レス読んだけど、1行目に何も書かず2行目から書き始めればお望み通りの動作する希ガス まず改行してから書き始めるとタイトル省略されるけど違う感じ? - 名無しさん 2013-12-14 04:50:25
  • あ、日付で検索できないのは検索法間違えてるんだと思うよん 2013年中のノートを検索するなら「intitle:2013年」、毎年12月のは「intitle:年12月」、毎月15日のは「intitle:月15日」、毎週日曜のは「intitle:日(日)」って書くのよ 「2013/12/15」のフォーマットだとこの手の検索が使えないから年月日表記にしたしこれで調べたらちょうどSnapCalも採用してたと 俺としては日付タイトルがオススメだしタイトル省略も実装済みだから対応しなくても良いかな… - 名無しさん 2013-12-15 01:01:17
  • ほんとだ。一行目空白にすればうまくいきました。ありがとうございます。 - 名無しさん 2013-12-18 22:56:37
名前:

STPushEver

どういうアプリなの?

サポテキから1タップでEvernoteにノート投稿できたら良いよねっていうアプリです
機能としては、ノートの新規投稿と、ノートを取得しサポテキに表示するだけ
当たり前ですがサポテキにENMLを解釈したりENMLタグを挿入するような機能がないため、プレーンテキストオンリーになります
よって、上書き機能は今のところ考慮していません。他のアプリなどから書式付きのノートを一生懸命作ったとして、そのノートに対してサポテキで上書きできてしまうと書式が綺麗に吹っ飛んでしまうため

どこにあるの?

STPushEver
サポテキ作者さんとは別人が開発した野良アプリですので、サポテキ作者さんにクレーム等はしないでください
また、使ってくれても得しませんし使ってくれなくても損しないので、野良アプリは信用ならんと思うのであればぜひ他の連携アプリを使ってください
  • 1.1.3
ダイアログモード時にキャンセル押すとコマンドを含む文字列を返してしまうというミスを修正(こんなんばっか)
サポテキの設定によっては、ダイアログモードを使ったノートの検索時にキャンセル押すと「?c」が返ってくるように見えるのはサポテキの仕様上不可能(文字列""を渡した時の処理はサポテキ依存)
  • 1.1.2
たしかに誤タップ投稿されてうざいあるあるなので確認ダイアログ出る投稿モードを用意
「1行目 : ?c 2行目 : %s」のテキストを投げると確認ダイアログ付き投稿モードになります
  • 1.1.1
日付を挿入しない設定にしていた場合、本文にURLを含むノートを投稿しようとするとURLが多重置換され投稿に失敗する問題に対応。
  • 1.1.0
設定画面の一部をScrollViewに入れたので画面が小さい端末でもはみ出さなくなったと思いたい
検索結果が50件以下の時に、タップしたのとは違うノートが取得される問題に対応
便利かもしれないのでToDoチェックボックスの表示にだけは対応。チェック入っていれば■、入っていなければ□。済んでもチェック入れられないので微妙?
ついでにチェックの入ってないToDoノートすべてを検索するボタンを追加
また検索時に毎回「intitle:」を入力しなくても良いように検索バーの脇に設定ボタン追加(リストボックスみたいのにしたい)
  • 1.0.0
対応するつもりもなく当然のように無料アカウント向けです。プレミアムやビジネスのことは考えてません
基本の例外処理はしてますが、ノート数が上限の10万だったりスマホがオフラインになっていた場合などは「なんらかのエラー」として大雑把にしか対処してません…
インテントの再送信、ノートを検索する際のオフセット指定などはそのうち実装するかも

帯域制限について

Evernoteサービスを利用したアプリケーションについて、非製品版アプリは2013年8月14日以降、既存の製品版アプリは2013年11月18日から帯域制限が適用されるようになりました
帯域制限とは、APIキーごと、ユーザごと、時間枠ごとに適用される制限で、この制限を超過すると1時間待たなければEvernote APIのリクエストができなくなるようです
APIキーごとというのは実質アプリごとを意味するので、帯域制限にかかったアプリとは別のアプリを使えば帯域制限中でもデータへのアクセスができます
どうやると制限されるかについて書かれた記事がパっと見つけられなかったのですが、実際に制限されるまでAPIを呼び出してみると、60回目(61回目?)の呼び出しで帯域制限にかかる模様
1分間に1回以上の頻度でアクセスするようなアプリは制限しちゃうぞ、ということらしいです

起動パターン

1.設定モード

ドロワーなどから普通に起動した場合、設定モードで起動
ログインやログアウト、ノートに付けるタグやノートブックを設定したりします
(画面が盛大に崩れてるかも ちゃんとしたやつにしたい)

2.FILEモード

ファイラーからテキストファイルをSTPに投げた場合は、そのテキストファイルの内容をEvernoteに投稿します
ノートのタイトルはフルパスではなく拡張子付きファイル名になります
2.1文字コード
文字コードは UTF-8 固定なので非UTF-8のファイルを投稿した場合は文字化けします

3.投稿モード

サポテキで文章を入力しSTPを呼び出した場合はその内容をEvernoteに投稿します
1行目にノートのタイトル、2行目以降が本文になります
1 | ノートのタイトル
2 | 本文
3 | ...

タイトルを省略したい場合には2行目から書き始めることで本文の1行目が自動的にタイトルとなります
1 |
2 | 本文
3 | ...
3.1.確認ダイアログ付き投稿モード
たまにボタン押し間違えて問答無用で投稿されるあるある
他のアプリから共有したときは問答無用で投稿するけどサポテキから共有した場合にはダイアログ表示させることも可能
1行目に「?c」、2行目に「%s」にしてやると確認ダイアログ付きの投稿モードになります
※1行目に「%s」だけだと通常の投稿モード

[TITLE]
PushEver - 確認ダイアログ付き
[TEXT]
?c
%s
[TYPE]
TEXT
[CCODE]
NONE
[PACKAGE]
jp.co.nanacy.stpushever
[CLASS]
jp.co.nanacy.stpushever.MainActivity
[END]

3.2.タイトルと本文の省略
255文字を超えるタイトルを持つノートは投稿に失敗するため、256文字目からは省略されます

タイトルしかないノートの投稿も失敗するので、1行しかないテキストデータを投げた場合は、タイトルであり本文の1行目でもあるノートとして投稿します
これによって、たとえばネットサーフィンしていて気になったちょっとした短文を共有して投稿することにも使えます

タイトルのない無題のデータを投げた場合は、本文の1行目をタイトルとして挿入します
※2行目もデータがなく3行目から書き始めた場合に「無題」のノートとして投稿する
3.3.投稿日時の挿入
投稿日時を挿入するように設定した場合、タイトルの先頭か本文の1行目に投稿日時を挿入します
検索のしやすさと、Evernoteサービスと連携できるカレンダーアプリSnapCalも採用していることを考慮し、「xxxx年xx月xx日(x) xx:xx」といったようなフォーマットに固定しました

4.読み込みモード

サポテキで何も書かずにSTPを呼び出した場合にはまず検索モードとして起動します
※SEARCHインテントを受け付けないのは仕様です。非推奨なオマケ機能なので
ノートを読み込みサポテキで表示する流れは、検索→結果一覧からノートを選択→サポテキに表示になります
検索ダイアログで入力する検索文字列は公式サービスの検索バーで入力できるものと全く同じようなので「tag:"hoge"」だとか使えるみたいです
※検索ダイアログに未入力で検索するとおそらくすべてのノートを候補として表示する

ところで、先に触れたとおりEvernoteサービスを利用するアプリには帯域制限が設定されているため、鯖とデータのやりとりをしまくってるとすぐに帯域制限になります
STPはキャッシュを一切使わず鯖から生のデータをやりとりするので、ノートを検索しているだけで着々とカウントアップしそのまま帯域制限にかかる可能性が非常に大きいです
本来であれば、鯖のデータを検索するのではなくローカルに同期させたノートを検索するようにすれば問題ないと思うのですが、さすがにそこまで実装してフリーソフトとして提供するのは割に合わなそうなのでやりたくないです

要するに、ノートの読み込み機能は一応あるけどそんなのなかった勘違いだったと思って、ノートの読み込みは公式のアプリや他の連携アプリを使った方が良さそうです
サポテキから1タップでノートを投稿するためのアプリですし、ノートを投稿する度にもカウントアップするので余計な読み込み機能で帯域制限にかかってノートの投稿ができなくなったら本末転倒ですし…