見出し画像

pdffontsの自動実行(2)

昨日は、JMLT vol.7 in Sapporo に参加して、1.5Lくらいおいしい牛乳を飲んだり、今まで雰囲気でasync/awaitを使っていたことを懺悔する発表をしてきたりしました。1本1,700円の牛乳は、めちゃくちゃおいしかったです。今日は、pdffontsの実行結果をkintoneの対象pdfが添付されたレコードの結果フィールドに反映したいと思います。

Promise結局まだ何もわかっていなかった件

さて、前回首尾よくpdfファイルをローカルにダウンロードして、pdffontsを実行した結果をテキストファイルに保存することができました。次は、保存したpdffontsの実行結果を、kintoneのpdffonts実行結果フィールドに反映できれば完成したも同然です。

前回気になったエラー処理を追加

前回は添付ファイルをすべてダウンロードして、pdffontsを実行していたので、pdf以外のファイルに対するpdffonts実行でエラーが発生していました。添付ファイルの拡張子がpdf以外の場合は、処理しないことにします。

                // 拡張子がpdfだったら、ダウンロードしてpdffonts実行
                const extention = (name.split('.').slice(-1)[0]).toLowerCase();
                console.log(`拡張子: ${extention}`);
                if( extention === 'pdf'){
                    const gotFile = getFile(fileKey, name, contentType);

この段階で実行してみると、拡張子がpdfの場合だけpdffontsを実行できました。

$ node fetchPDF.js 
SET TOKEN
getRecords 3 records
拡張子: md
拡張子: json
拡張子: pdf
fetch start Chrome拡張MV3について.pdf contentType:application/pdf
ファイル書き出しOK=>Chrome拡張MV3について.pdf

非同期処理なんだけど処理したい順番がある

Promiseわかったようでわかっていなくて、pdffontsの結果を吐き出した次の処理「レコードへの結果反映」と「ステータス更新」をどのタイミングで実行すればよいのかわからなくなってしまいました。pdffontsの実行が確定しないと、結果のテキストファイルが読めなさそうです。むしろ、Promiseを意識していないときの方が、無邪気に実装を進められていたかもしれません。わからないまま進められないので、エラー処理を追加したところまでで、今日は終わります。やはり、もう少し集中して取り組む時間を確保しないと、理解ができた気分になっただけで終わってしまうなぁと反省しています。反省だけなら、さるでもできるので、対策をしなくては。


この記事が気に入ったらサポートをしてみませんか?