LoginSignup
8
7

More than 3 years have passed since last update.

50行でちゃんと動くリマインダーアプリ「Notification-CLI」をリリースしました

Posted at

50行でちゃんと動くリマインダーアプリ「Notification-CLI」をリリースしました

以下かんたんな日本語版クイックスタートになります。

Minimalistic Command Line Notification Application under 50 Lines

50行で実装のシンプルなコマンドラインベースのリマインダーアプリケーション。

クイックスタート Quick Start

This will nofity you when 2021 February 20, PM 6:00.

以下で2021年2月20日18時に通知をします。

./noc.js -d 2021022018 --desktop

Very much minimalistic.

とてもミニマリスティック。

インストール Installation

git clone https://github.com/yuis-ice/notification-cli.git
cd notification-cli
chmod 755 ./noc.js
npm i

必要環境 Requirements

  • node.js v13.10.1 or higher
# node.js [nvm-sh/nvm](https://github.com/nvm-sh/nvm)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
bash
nvm install v13.10.1
node -v

使用例 Examples

This will only notify you by command line console output:

コマンドライン出力で通知します。

./noc.js -d 2021022018

The output be like:

出力はこんな感じです。

$ ./noc.js -d 202102120234
2021-02-12T02:33:16+09:00 Jobs started...
2021-02-12T02:33:16+09:00 You will be notified at: 2021-02-12T02:34:00+09:00
2021-02-12T02:34:00+09:00 Notified.
$

You can abbreviate your seconds, minutes, hours and so on:

秒、分などを省略しても動きます。

./noc.js -d 2022

This will notify you when PM 11:00 in the day:

その日の23時になったら通知します。

./noc.js -d 23 --format HH

An alias makes your code much more minimalistic:

エイリアスを定義すると、よりシンプルになります。

alias notify="./noc.js --format MM,DD,HH" # Specifying absolute path recommended
notify -d 2,20,18

This will run your command:

シェルコマンド、外部コマンドも実行できます。

./noc.js -d 2021022018 -c "firefox.exe sound.mp3"

No logs on background be like:

バックグラウンドでマルチインスタンスに使用するのもいいですね。

./noc.js -d 2021022018 --desktop --hide-log --log "" &

My favorite format <3

僕のお気に入り。

./noc.js -d 2021022018 -c "firefox.exe sound.mp3" --desktop -t "your appointment soon"

コマンドラインオプション Command line Options

$ ./noc.js
Usage: notification-cli [options]

Options:
  -d, --date <date>             specify date to fire (e.g. "2022010100" for 2020/1/1 00:00) (default: null)     
  -f, --format <format>         specify date format (default: "YYYYMMDDHHmmss")
  -D, --desktop                 enables desktop notification
  -t, --title <text>            specify title (default: "Notification-CLI")
  -m, --message <text>          specify message (default: ":)")
  -c, --exec-command <command>  specify command to run (e.g. firefox.exe ringtone.mp3) (default: null)
  -l, --log <text>              specify console log message (default: "Notified.")
  -H, --hide-log                hide infomation logs
  -h, --help                    display help for command

一言

コードを書くよりreadmeを書く時間のほうが長くなってしまった例。

momentjsとnode-scheduleのおかげでimportやコマンドラインオプション部分を除くメインのコードはなんと10行程度で収まっています。

ソースコードを見られたら少し恥ずかしいかもしれない。対してソースコードのシンプリシティは初学者にとってそのコードを研究する敷居を低くしてくれると思うので、node.jsあるいはプログラミング初学者の人に積極的に参考にして頂ければ嬉しいと思う。

8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7