EnSetTime

2024-07-10

2024-09-21
EnFinder に EnSetTimeの機能を取り込みました
・公式Evernoteアプリでノートを閲覧しただけで更新が行われ、更新日時が変更されてしまう症状が確認されています

2024-04-07
ver.2 を公開しました(機能・見た目は、あまり変わってません)
今のところ APIは塞がれていないようです
Webブラウザで認証を行う都合から、インストーラーでのセットアップとなりました
ver.2で64bit化しました(32bitの要望があれば作成するかもしれません)

▼2024-3-17 のコメント▼

2024-3-17
某掲示板からリンクを張っていただいたようで
作成動機がオレオレ利用で、設計が手抜きのためウィルスチェックでひっかかる箇所があるのかもしれません
作者自身が日々使用しているもので、作者の知る限り、仕込み・情報取得などは一切行っておりません
(そんな暇もありません)

警告される可能性や言い訳など

認証について
本来はブラウザを使用して、カスタムスキームすべきところですが、内蔵したIEコンポーネントを利用しています
トークンの取得上、開発者キー等を Evenoteへ送信する必要がある等 boltzsoft.com のサイトを経由しますが
サーバ側に情報は記録いたしません
(最近スクリプトエラーが表示される事に気づきましたが、続行することで認証トークンを受け取ることが可能です)
→ ensettime:// 等のカスタムスキーム(要UAC)や WebViwe2 等へ移行すべきところです

APIについて
Evernote Web API 以外へ接続することはありません
Evernote API の権限はざっくり
・ノートの追加
・ノートの検索・閲覧
・ノートの編集
のように分かれており、このアプリケーションは日付のみの変更といえども、ノートの編集 という
比較的高い権限を使用せざるを得ないことをご理解ください
ノート本体のデータ取得は、タイトルや元日付情報の他、添付ファイル名、OCR情報から
日時っぽいものを抽出するために使用しており、いずれもアプリケーション内で完結しています

今後について
Evernote Legacy の終了に伴い、引き続きAPIを利用可能か不明なところがあり
改修などは状況を見てからになります

開発者向けの sandbox.evernote.com は 2023-11-15 に提供を終了、sandboxの不具合を報告しても応答無し
部署ごと消滅してるのかと思うほど、サードパーティアプリへの対応は全く期待できない様子ですw

EnSetTime とは

Evernote のノート時刻(作成日, 更新日)を設定するためだけのアプリケーションです
対象のノートを開くために、ノートリンクまたはアプリリンクが必要ですので、EvernoteアプリやWebをご用意ください
(Evernote ver.10 でノート作成日が変更できなくなったため作成しました)

動作環境

Windows10以降 (ver.2 から 64bit)

特徴



利用前に必ずお読み下さい

手順等 ver.2 以降用です

使用までの手順(ver.2以降)

EnSetTime のダウンロード

Evernote 認証

Evernote API へ接続するためのアカウント認証を行います

  1. 起動後、ツール -> アカウント を開く
  2. 追加からブラウザ(既定)を開いて Evernote 認証を行います
    ※プルダウンからURLをコピペして、既定ブラウザ以外でも認証可能です
    ※アカウント管理画面は開いたままにしておいてください

使用方法

  1. Evernoteアプリ や Evernote Web で、日付を変更したいノートを表示し、ノートリンク または アプリリンク をコピーします
    Ctrl + Alt + L でも可能です
    ※ノートの同期を完了させておいてください
  2. EnSetTime でリンクを貼り付けて開きます
    Ctrl + V でも可能です
  3. タイトルの入ったウィンドウが開きます
    日付, 時刻を直接入力するか、候補から選択・投入(ダブルクリック)して、保存 → Evernoteサーバにあるノートの日付が更新されます
    ※アップロード直後の画像などはOCR情報が生成されていない場合があります(Evernoteしだい)
    ※Evernoteクライアントで、同期または再表示で、新しい日時に更新されます

候補データについて

候補に表示される日時データは、添付された各リソースのAPI Recognation(OCR), Filename(ファイル名), Timestamp(タイムスタンプ) の3箇所から取得しています.
このうち、Recognation, Filename は、設定の「取得候補」タブで定義される正規表現が用いられます.
正規表現は、日付は「年月日」の順, 時刻は「時分」または「時分秒」の順で、数値をグループ化してください. 月の文字列表記には対応していません.
Timestamp は、Evernote側で Exif情報などから得られる値が記録されているようですが、タイムゾーンが不定っぽいので、ローカルタイム, UTC, PDT を併記しています.

重複する日付や時刻は、リストから削除されます.

文字認識について

アプリを作成して気づきましたが、Recognation で取得される時刻部分が残念な状態です.
近年追加されたノートは、時刻部分の :(コロン) をほとんど認識できない(数年前は可能だった)ため、日本語で区切られた時刻以外を認識するのは困難です.

これらの情報は、enex 形式でノートをエクスポートして、<recognition> タグで確認することができます

作成日 = 更新日

Evernote Legacy の場合
作成日と更新日 が全く同じ(秒未満も)データの場合、公式アプリでは「更新日: なし」と表示されるようです
「更新日: なし」の状態を作るには、「作成日 = 更新日」のチェックを入れてください
Evernote10 以降も日時を揃えたい場合は上記をご利用ください(設定で常にオンも可能)

アンインストール

コントロールパネルのプログラムと機能 から EnSetTime~ を削除してください
(Evernote側のアカウント等が消されることはありません)

▼利用ディレクトリ・レジストリ▼
  • %programfiles%\EnSetTime2 ・・・標準インストールディレクトリ
  • %userprofile%\AppData\Local\EnSetTime2 ・・・プロファイル置き場
  • HKEY_CLASSES_ROOT\EnSetTime ・・・認証用カスタムスキーム(インストーラーにより生成)
※いずれもアンインストールで削除(接続情報含む)されます

その他

作者へのコンタクト

フォームからご連絡下さい
基本的すぎる質問、飛躍した要望はご遠慮ください。
作成動機がオレオレ使用です、お察しください