This repository was archived by the owner on Feb 24, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlabotter.nako
553 lines (501 loc) · 20.1 KB
/
labotter.nako
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
// らぼったあ ラボ入退室記録アプリ
// 開発者: nakkaa
// 連絡先:tnakkaa[at]gmail.com //[at]を@へ置換
!「lib_sengen.nako」を取り込む
!「lib_win32.nako」を取り込む
!「lib_nakotter.nako」を取り込む
!「lib_gui_setting.nako」を取り込む
!「lib_gui_history.nako」を取り込む
//定数
VERSION=「1.17.1」//バージョン番号
IN_VERSION=「1.171」//内部バージョン
WINDOW_TITLE=「らぼったあ v{VERSION}」//ウィンドウのタイトル
//メインウィンドウの設定
!母艦設計=『母艦の可視はオフ』
母艦について
タイトルはWINDOW_TITLE
H=300
W=300
オフに最大化ボタン有効変更
背景色はウィンドウ背景色
スタイルは「枠固定」
閉じた時は~
終了処理
//メインメニュー
『,f1,ファイル(&F)
-,f2,設定(&S),,,設定ウィンドウ開処理
-,f3,履歴(&H),,,履歴画面表示処理
-,-
-,f9,終了(&X),,,終了処理
,h1,ヘルプ(&H)
-,h2,使い方(&M),F1,,URL_HELPを起動
-,-
-,h3,バージョン情報(&A),,,「らぼったあ v1{~}{~}バージョン {VERSION} (Build {ナデシコバージョン}){~}{~}Copyright (C) 2016-2022 nakkaa」をいう』のメニュー一括作成
//起動時に行う処理
起動時処理
//GUI設計 ここから
//Twitterクライアントの生成
なこったークライアントとはNakotter
これについて
oauthのコンシューマのトークンキー=プログラム側キー。
oauthのコンシューマのシークレット=プログラム側シークレット。
//らぼいんボタン
入退室ボタンとはボタン
これについて
X=10。H=50。W=110。Y=30。
クリックした時は~
入退室処理
呟きボタンとはボタン
これについて
X=150。H=50。W=110。Y=30
有効はオフ
クリックした時は~
twi_labo_now
//ステータスバー
ステバーとはステータスバー
これについて
レイアウトは「下」
テキストは「Twitter未認証」
//履歴ボタン
履歴ボタンとはボタン
これについて
X=10。H=40。W=110。Y=150。
テキストは「履歴」
ヒントは「入退室記録を見ることができます」
クリックした時は~
履歴画面表示処理
//設定ボタン
設定とはボタン
これについて
X=150。H=40。W=110。Y=150。
テキストは「設定」
ヒントは「Twitter連携やツイート内容の変更ができます」
クリックした時は~
設定ウィンドウ開処理
//入退室の時刻を表示するラベル
入室情報とはラベル
これについて
テキストは「{履歴入室時名称}:」
Y=100
退室情報とはラベル
これについて
テキストは「{履歴退室時名称}:」
Y=120
//アラート出す
アラートタイマーとはタイマー
これについて
間隔は1/*sec*/
時満ちた時は~
アラート処理
//GUI設計ここまで
●アラート処理
もし、LAST_ID==0ならば、
抜ける
違えば、
今を「:」で区切って「NH,NM,NS」へ変数分配
もし、NH>=22ならば、
アラートタイマーを停止
MessageBox((母艦の、ハンドル),「ボタンを押した状態で22時を過ぎました。
ボタンを押し忘れていませんか?」,「らぼったアラート」,$42010)。
●日時編集情報描画処理
直近入退室履歴のテキストを修正データへ代入
修正ID=修正データ\0\0
もし、修正ID==0ならば、戻る
STARTDATE=修正データ\0\1
ENDDATE=修正データ\0\2
MEMO=修正データ\0\4
開始日付のテキスト=STARTDATEを「yyyy/mm/dd」に日時形式変換
開始時刻文=STARTDATEを「hh:nn:ss」に日時形式変換して「:」で区切る
開始時のテキストは開始時刻文\0
開始分のテキストは開始時刻文\1
開始秒のテキストは開始時刻文\2
もし、修正ID==LAST_IDならば、
終了日付の有効はオフ
終了日付選択ボタンの有効はオフ
終了時の有効はオフ
終了分の有効はオフ
終了秒の有効はオフ
終了日付のテキスト=「」
終了時のテキストは「」
終了分のテキストは「」
終了秒のテキストは「」
違えば、
終了日付の有効はオン
終了日付選択ボタンの有効はオン
終了時の有効はオン
終了分の有効はオン
終了秒の有効はオン
終了日付のテキスト=ENDDATEを「yyyy/mm/dd」に日時形式変換
終了時刻文=ENDDATEを「hh:nn:ss」に日時形式変換して「:」で区切る
終了時のテキストは終了時刻文\0
終了分のテキストは終了時刻文\1
終了秒のテキストは終了時刻文\2
メモ欄のテキストはMEMO
日時編集ウィンドウを中央移動
日時編集ウィンドウをモーダル表示
●開始日付選択処理
日付選択
もし、それが空でなければ、開始日付のテキストはそれ
●終了日付選択処理
日付選択
もし、それが空でなければ、終了日付のテキストはそれ
●設定保存処理
エラー監視
修正開始日時=開始日付のテキスト&「 」&開始時のテキスト&「:」&開始分のテキスト&「:」&開始秒のテキストを「yyyy-mm-dd hh:nn:ss」に日時形式変換
エラーならば、「[エラー]{~}開始日時の値がおかしいです。」という
戻る
もし、修正ID==LAST_IDならば、
修正終了日時=「」
違えば、
エラー監視
修正終了日時=終了日付のテキスト&「 」&終了時のテキスト&「:」&終了分のテキスト&「:」&終了秒のテキストを「yyyy-mm-dd hh:nn:ss」に日時形式変換
もし、修正開始日時>修正終了日時ならば、
「開始日時が終了日時より未来になっています。」という
戻る
エラーならば、「[エラー]{~}終了日時の値がおかしいです。」という
戻る
「UPDATE ltt set start = '{修正開始日時}', end = '{修正終了日時}', memo = '{メモ欄のテキスト}' where id = {修正ID};」をSQLITE3実行
日時編集ウィンドウを閉じる
履歴描画処理
TWIのテキストは「Twitter認証」
設定読込処理
//コマンドライン引数に「-laboin」が含まれていたとき入室処理を実行する
もし、コマンドラインが「*-laboin*」にワイルドカード一致ならば、
もし、LAST_ID==0ならば、
入室処理
終了処理
//コマンドライン引数に「-labout」が含まれていたとき退室処理を実行する
もし、コマンドラインが「*-labout*」にワイルドカード一致ならば、
退室処理
終了処理
もし、コマンドラインが「*-noupdate*」にワイルドカード一致でなければ、
最新版確認処理
母艦を中央移動
母艦の可視はオン
設定ウィンドウを中央移動
アラートタイマーを開始
●入退室処理
もし、LAST_ID==0ならば、
入室処理
違えば、
退室処理
●入室処理
現在時刻=(今日の「/」を「-」に置換)&「 」&今
「INSERT INTO ltt(start) values('」&現在時刻&「');」をSQLITE3実行
LAST_ID=SQLITE3今挿入したID
入室情報のテキストは「{履歴入室時名称}:{現在時刻}」
退室情報のテキストは「{履歴退室時名称}:」
twi_labo_in
呟きボタンの有効はオン
入退室ボタンのテキストは「{退室時名称}」
●退室処理
もし、LAST_ID!=0ならば、
現在時刻=(今日の「/」を「-」に置換)&「 」&今
もし、Memo_flag==1ならば、
メモ内容=「進捗状況等のメモがあれば記入」と尋ねる
もし、(メモ内容が「^*(\s|\"|\'|\,)」で正規表現マッチ)が空でなければ、「半角スペースや半角記号は使用できません」という
戻る
違えば、「UPDATE ltt set end = '{現在時刻}',memo = '{メモ内容}' where id = {LAST_ID};」をSQLITE3実行。
違えば、「UPDATE ltt set end = '{現在時刻}' where id = {LAST_ID};」をSQLITE3実行。
「UPDATE ltt set end = '{現在時刻}' where id = {LAST_ID};」をSQLITE3実行。
退室情報のテキストは「{履歴退室時名称}:{現在時刻}」
twi_labo_out
呟きボタンの有効はオフ
LAST_ID=0
入退室ボタンのテキストは「{入室時名称}」
●履歴描画処理
DB検索処理
●履歴出力処理
CSV保存先=「csv」の「{今日の『/』を『-』へ置換}_{今の『:』を『-』へ置換}」で保存ファイル選択
もし、CSV保存先が空でなければ、直近入退室履歴のアイテムをCSV保存先へ保存
●起動時処理
エラー監視
キー保存先を開いてTwiKeyへ代入
プログラム側キー=TwiKey\0
プログラム側シークレット=TwiKey\1
エラーならば、「[エラー]{~}key.txtが存在しないです。」という
終了処理
初期設定処理
もし、DB保存先が存在でなければ、
DB保存先をSQLITE3開く。
「CREATE TABLE ltt(id INTEGER PRIMARY KEY,start TEXT,end TEXT,memo TEXT);」をSQLITE3実行。
違えば、
DB保存先をSQLITE3開く。
●終了処理
設定保存先のINI開いて設定ハンドルへ代入
設定ハンドルで「設定」の「Twitter」にtwi_flagをINI書く
設定ハンドルで「設定」の「最後に挿入したID」にLAST_IDをINI書く
設定ハンドルのINI閉じる
DB保存先のSQLITE3閉じる
ReleaseMutex(ミューテックス)。
CloseHandle(ミューテックス)。
終了
●削除処理
削除ID=直近入退室履歴のテキストの「"」から「"」まで範囲内切り取る
もし、(削除ID==0)または(削除ID==LAST_ID)でなければ、
「以下の項目を削除しますか?{~}{~}{直近入退室履歴のテキスト}」を二択
もし、それがはいならば、
「DELETE FROM ltt WHERE id=」&削除ID&「;」をSQLITE3実行。
履歴描画処理
●最新版確認処理
//ネットに接続していなければアップデート確認をスキップ
もし、インターネット接続判定==0ならば、戻る
エラー監視
経過ダイアログはオフ
「https://7ka.org/file/ltr/version.txt」からHTTPデータ取得して最新版情報へ代入
もし、最新版情報\0>IN_VERSIONならば、
MessageBox((母艦の、ハンドル),「らぼったあの新しいバージョンがあります。
ダウンロードしますか?」,「らぼったあの更新」,$42044)。
もし、それが6/*はい*/ならば、最新版情報\1を起動
終了
もし、それが7/*いいえ*/ならば、抜ける
エラーならば、抜ける
●設定読込処理
設定保存先のINI開いて設定ハンドルに代入。
設定ハンドルで「設定」の「VERSION」をINI読んで設定バージョンへ代入
もし、設定バージョン<1.10ならば、
設定ハンドルで「カスタマイズ」の「なう文」になう文をINI書く
もし、設定バージョン<1.11ならば、
もし、(設定ハンドルで「カスタマイズ」の「入室ボタン名」をINI読む)!=空ならば、それを履歴入室時名称へ代入
もし、(設定ハンドルで「カスタマイズ」の「退室ボタン名」をINI読む)!=空ならば、それを履歴退室時名称へ代入
設定ハンドルで「カスタマイズ」の「履歴入室時名称」に履歴入室時名称をINI書く
設定ハンドルで「カスタマイズ」の「履歴退室時名称」に履歴退室時名称をINI書く
INI設定(「カスタマイズ」,「入室ボタン名」,空,設定保存先) //INIキーの削除
INI設定(「カスタマイズ」,「退室ボタン名」,空,設定保存先)
//配布URLをつぶやかないオプションを追加
もし、設定バージョン<1.13ならば、
設定ハンドルで「カスタマイズ」の「宣伝フラグ」に「0」をINI書く
//らぼ滞在時間を別文言に変えるオプションを追加
もし、設定バージョン<1.15ならば、
設定ハンドルで「カスタマイズ」の「滞在時間文言」に滞在時間文言をINI書く
//らぼいんらぼりだボタンの文言を変更できるように
もし、設定バージョン<1.16ならば、
設定ハンドルで「カスタマイズ」の「入室時名称」に入室時名称をINI書く
設定ハンドルで「カスタマイズ」の「退室時名称」に退室時名称をINI書く
設定ハンドルで「カスタマイズ」の「なう時名称」になう時名称をINI書く
「らぼったあ {VERSION} へ更新しました。{~}ボタンの文言を変更できるようになりました。」という
設定ハンドルで「設定」の「VERSION」にIN_VERSIONをINI書く
設定ハンドルで「カスタマイズ」の「履歴入室時名称」をINI読んで履歴入室時名称へ代入
設定ハンドルで「カスタマイズ」の「履歴退室時名称」をINI読んで履歴退室時名称へ代入
設定ハンドルで「カスタマイズ」の「なう文」をINI読んでなう文へ代入
設定ハンドルで「カスタマイズ」の「入室時名称」をINI読んで入室時名称へ代入
設定ハンドルで「カスタマイズ」の「退室時名称」をINI読んで退室時名称へ代入
設定ハンドルで「カスタマイズ」の「なう時名称」をINI読んでなう時名称へ代入
設定ハンドルで「設定」の「Twitter」をINI読んでtwi_flagへ代入
設定ハンドルで「設定」の「最後に挿入したID」をINI読んでLAST_IDへ代入
設定ハンドルで「設定」の「メモ機能」をINI読んでMemo_flagへ代入
設定ハンドルで「カスタマイズ」の「入室文」をINI読んで入室文へ代入
設定ハンドルで「カスタマイズ」の「退室文」をINI読んで退室文へ代入
設定ハンドルで「カスタマイズ」の「ハッシュタグ」をINI読んでハッシュタグへ代入
設定ハンドルで「カスタマイズ」の「宣伝フラグ」をINI読んでlabourl_flagへ代入
設定ハンドルで「カスタマイズ」の「滞在時間文言」をINI読んで滞在時間文言へ代入
設定ハンドルのINI閉じる
GUI文言再設定処理
もし、twi_flag==1ならば、twi_setting_load
設定情報描画処理
●GUI文言再設定処理
//メインウィンドウのGUI文言再設定
入室情報のテキストは「{履歴入室時名称}:」
退室情報のテキストは「{履歴退室時名称}:」
呟きボタンのテキストは「{なう時名称}」
もし、LAST_ID==0ならば、
入退室ボタンのテキストは「{入室時名称}」
呟きボタンの有効はオフ
違えば、
入退室ボタンのテキストは「{退室時名称}」
入室時間=「SELECT start FROM ltt WHERE id=」&LAST_ID&「;」をSQLITE3実行
入室情報のテキストは「{履歴入室時名称}:{入室時間\1}」
呟きボタンの有効はオン
//初回起動時の設定
●初期設定処理
もし、設定保存先が存在でなければ、
設定保存先のINI開いて設定ハンドルへ代入
設定ハンドルで「設定」の「VERSION」にVERSIONをINI書く
設定ハンドルで「設定」の「最後に挿入したID」に「0」をINI書く
設定ハンドルで「設定」の「Twitter」に「0」をINI書く
設定ハンドルで「設定」の「メモ機能」に「0」をINI書く
設定ハンドルで「カスタマイズ」の「宣伝フラグ」に「0」をINI書く
設定ハンドルで「カスタマイズ」の「入室文」に入室文をINI書く
設定ハンドルで「カスタマイズ」の「退室文」に退室文をINI書く
設定ハンドルで「カスタマイズ」の「ハッシュタグ」にハッシュタグをINI書く
設定ハンドルで「カスタマイズ」の「履歴入室時名称」に履歴入室時名称をINI書く
設定ハンドルで「カスタマイズ」の「履歴退室時名称」に履歴退室時名称をINI書く
設定ハンドルで「カスタマイズ」の「入室時名称」に入室時名称をINI書く
設定ハンドルで「カスタマイズ」の「退室時名称」に退室時名称をINI書く
設定ハンドルで「カスタマイズ」の「なう時名称」になう時名称をINI書く
設定ハンドルで「カスタマイズ」の「なう文」になう文をINI書く
設定ハンドルで「カスタマイズ」の「宣伝フラグ」に「0」をINI書く
設定ハンドルで「カスタマイズ」の「滞在時間文言」に滞在時間文言をINI書く
設定ハンドルのINI閉じる
「らぼったあ {VERSION}へようこそ!{~}詳しい使い方はヘルプメニューの『使い方』をクリックしてください。」という
//設定ウィンドウ関連
●ボタン2__クリックした時
設定ウィンドウを閉じる
●ボタン1__クリックした時
設定情報上書保存処理
●設定情報描画処理
エディタ1のテキストは入室文
エディタ2のテキストは退室文
エディタ3のテキストはなう文
エディタ4のテキストはハッシュタグ
滞在時間文言エディタのテキストは滞在時間文言
履歴入室時名称エディタのテキストは履歴入室時名称
履歴退室時名称エディタのテキストは履歴退室時名称
入室時名称エディタのテキストは入室時名称
退室時名称エディタのテキストは退室時名称
なう時名称エディタのテキストはなう時名称
メモ機能チェックの値はMemo_flag
宣伝チェックの値はlabourl_flag
●設定情報上書保存処理
入室文はエディタ1のテキスト
退室文はエディタ2のテキスト
なう文はエディタ3のテキスト
ハッシュタグはエディタ4のテキスト
滞在時間文言は滞在時間文言エディタのテキスト
履歴入室時名称は履歴入室時名称エディタのテキスト
履歴退室時名称は履歴退室時名称エディタのテキスト
入室時名称は入室時名称エディタのテキスト
退室時名称は退室時名称エディタのテキスト
なう時名称はなう時名称エディタのテキスト
Memo_flagはメモ機能チェックの値
labourl_flagは宣伝チェックの値
設定保存先のINI開いて設定ハンドルに代入
設定ハンドルで「カスタマイズ」の「入室文」に入室文をINI書く
設定ハンドルで「カスタマイズ」の「退室文」に退室文をINI書く
設定ハンドルで「カスタマイズ」の「なう文」になう文をINI書く
設定ハンドルで「カスタマイズ」の「ハッシュタグ」にハッシュタグをINI書く
設定ハンドルで「設定」の「メモ機能」にMemo_flagをINI書く
設定ハンドルで「カスタマイズ」の「宣伝フラグ」にlabourl_flagをINI書く
設定ハンドルで「カスタマイズ」の「履歴入室時名称」に履歴入室時名称をINI書く
設定ハンドルで「カスタマイズ」の「履歴退室時名称」に履歴退室時名称をINI書く
設定ハンドルで「カスタマイズ」の「入室時名称」に入室時名称をINI書く
設定ハンドルで「カスタマイズ」の「退室時名称」に退室時名称をINI書く
設定ハンドルで「カスタマイズ」の「なう時名称」になう時名称をINI書く
設定ハンドルで「カスタマイズ」の「滞在時間文言」に滞在時間文言をINI書く
設定ウィンドウを閉じる
設定ハンドルのINI閉じる
GUI文言再設定処理
●設定ウィンドウ開処理
設定ウィンドウを中央移動
//設定ウィンドウを開く直前の値を反映する
設定情報描画処理
設定ウィンドウをモーダル表示
●履歴画面表示処理
履歴ウィンドウを中央移動
履歴描画処理
履歴ウィンドウをモーダル表示
●DB検索処理
検索抽出結果=「SELECT id AS "ID", start AS "{履歴入室時名称}", end AS "{履歴退室時名称}",cast((julianday(end) - julianday(start)) as integer)||":"||(time(strftime('%s', end, 'localtime') - strftime('%s', start, 'localtime'),'unixepoch')) as "{滞在時間文言}",memo AS "メモ" FROM ltt WHERE start LIKE '%{履歴編集のテキスト}%' or end LIKE '%{履歴編集のテキスト}%' or memo LIKE '%{履歴編集のテキスト}%' OR id LIKE '%{履歴編集のテキスト}%' ORDER BY id DESC;」をSQLITE3実行
累計滞在時間=「SELECT cast((sum(julianday(end) - julianday(start)))%24 as int)||"日"||cast((sum(julianday(end) - julianday(start))*24)%24 as int)||"時間"||cast((sum(julianday(end) - julianday(start))*24*60)%60 as int)||"分" from ltt where start LIKE '%{履歴編集のテキスト}%' or end LIKE '%{履歴編集のテキスト}%' ORDER BY id DESC;」をSQLITE3実行
平均滞在時間=「SELECT cast((avg(julianday(end) - julianday(start)))%24 as int)||"日"||cast((avg(julianday(end) - julianday(start))*24)%24 as int)||"時間"||cast((avg(julianday(end) - julianday(start))*24*60)%60 as int)||"分" from ltt where start LIKE '%{履歴編集のテキスト}%' or end LIKE '%{履歴編集のテキスト}%' ORDER BY id DESC;」をSQLITE3実行
履歴ステータスバーのテキストは「累計時間は{累計滞在時間\1} 平均時間は{平均滞在時間\1}」
直近入退室履歴のアイテムは検索抽出結果
//Twitter処理関係
●twi_oauth
もし、インターネット接続判定==0ならば、
戻る
エラー監視
なこったークライアントで認証する。
認証情報はそれ。
設定保存先のINI開いて設定ハンドルへ代入
設定ハンドルで「設定」の「トークンキー」に「{認証情報@oauth_token}」をINI書く
設定ハンドルで「設定」の「トークンシークレットキー」に「{認証情報@oauth_token_secret}」をINI書く
設定ハンドルのINI閉じる
エラーならば、
twi_nako_error_view
●twi_setting_load
エラー監視
もし、twi_flag==0ならば、twi_oauth
設定保存先のINI開いて設定ハンドルに代入。
設定ハンドルで「設定」の「トークンキー」をINI読んでTWI_TOKEN_KEYへ代入
設定ハンドルで「設定」の「トークンシークレットキー」をINI読んでTWI_TOKEN_SECRETへ代入
設定ハンドルのINI閉じる
もし、(TWI_TOKEN_KEY==空)または(TWI_TOKEN_SECRET==空)ならば、
ステバーのテキストは「認証キーがありません」
twi_flag=0
違えば、
なこったークライアントのoauthのトークンキー=TWI_TOKEN_KEY
なこったークライアントのoauthのシークレット=TWI_TOKEN_SECRET
twi_flag=1
twi_button_refresh
エラーならば、
エラーメッセージをいう
twi_nako_error_view
●twi_setting_delete
twi_flag=0
設定保存先のINI開いて設定ハンドルへ代入
設定ハンドルで「設定」の「トークンキー」に「」をINI書く
設定ハンドルで「設定」の「トークンシークレットキー」に「」をINI書く
設定ハンドルのINI閉じる
twi_button_refresh
●twi_labo_now
現在時刻=(今日の「/」を「-」に置換)&「 」&今
もし、twi_flag==1ならば、
エラー監視
もし、labourl_flag==1ならば、
なこったークライアントから「{なう文} {現在時刻} {ハッシュタグ}」とつぶやく
違えば、
なこったークライアントから「{なう文} {現在時刻} {後付文} {ハッシュタグ}」とつぶやく
それでtwi_tweet_error_check
エラーならば、twi_nako_error_view
違えば、「Twitter認証をすると呟けます。」という
●twi_labo_in
もし、twi_flag==1ならば、
エラー監視
もし、labourl_flag==1ならば、
なこったークライアントから「{入室文} {現在時刻} {ハッシュタグ}」とつぶやく
違えば、
なこったークライアントから「{入室文} {現在時刻} {後付文} {ハッシュタグ}」とつぶやく
それでtwi_tweet_error_check
エラーならば、twi_nako_error_view
●twi_labo_out
もし、twi_flag==1ならば、
エラー監視
累計時刻=「SELECT cast((sum(julianday(end) - julianday(start)))%24 as int)||"日"||cast((sum(julianday(end) - julianday(start))*24)%24 as int)||"時間"||cast((sum(julianday(end) - julianday(start))*24*60)%60 as int)||"分" from ltt where id = {LAST_ID};」をSQLITE3実行
もし、labourl_flag==1ならば、
なこったークライアントから「{退室文} {現在時刻} 今回の{滞在時間文言}は{累計時刻\1}でした。 {ハッシュタグ}」とつぶやく
違えば、
なこったークライアントから「{退室文} {現在時刻} 今回の{滞在時間文言}は{累計時刻\1}でした。 {後付文} {ハッシュタグ}」とつぶやく
それでtwi_tweet_error_check
エラーならば、twi_nako_error_view
●twi_tweet_error_check(Sで)
もし、Sが「errors*」に一致ならば、//エラーならば
ステバーのテキストは「Twitter接続エラー(コード:{S@`errors`@`code`})」
違えば、
ステバーのテキストは「Twitterにつぶやきました」//{~}{S@`user`@`name`}{~}{S@`text`}」
●twi_button_refresh
もし、twi_flag==1ならば、
TWIのテキストは「Twitter認証解除」
ステバーのテキストは「Twitter認証済み」
違えば、
TWIのテキストは「Twitter認証」
ステバーのテキストは「Twitter未認証」
●twi_nako_error_view
ステバーのテキストは「エラーが発生しました(Twitter認証に失敗)」
//多重起動の禁止
●CreateMutex(sec,owner,{参照渡し}neme) =DLL("kernel32.dll",
"HANDLE CreateMutexA(
LONG pSAttr,//0固定
BOOL fOwner,//所有者
LPCTSTR sMutexName//オブジェクト名
)")
●ReleaseMutex(hMutex) =DLL("kernel32.dll",
"BOOL ReleaseMutex(
HANDLE hMutex // ミューテックスのハンドル
)")
●CloseHandle(hObject)=DLL("kernel32.dll",
"BOOL CloseHandle(
HANDLE hObject // オブジェクトのハンドル
)")
●GetLastError()=DLL("kernel32.dll","DWORD GetLastError()")
ミューテックスはCreateMutex(0,0,ミューキーワード)
GetLastError()
もしそれが/*ERROR_ALREADY_EXISTS*/183ならば、多重起動検知処理。
●多重起動検知処理
『既に起動しています』という。
終わり。