初心者がエンジニアに転職するための、壁打ちブログ('ω')

・CS、SV、TA、データサイエンス、などをIT業界で学んできた私が、 サーバーサイドエンジニアとして独立するまでのブログです

転職と緊急事態宣言 (4/6時点)

緊急事態宣言の煽りを受けた転職への影響

2020年4月6日時点で、緊急事態宣言近日発表が確定した。

www3.nhk.or.jp

【背景】

・4月末日退職予定だった私としては、正直非常に不安な状況 ・民間企業が事業以外に一番切りやすい所が人件費なので、特に採用関連は就職氷河期ですら優に超えている
・2社ほど(年収を150万円ほど下げ)内定貰っていたが、家族間に金銭トラブルが起こるダブルパンチ

【結論】

・よって、アルバイトでの非正規雇用にて、お金を稼ぐ選択肢をとります。(泣きそうw)

【ついでに最近やったGASの作業】

  • Gmailに受信している特定のメールを、自動転記させる
    • とりたいメールはHTMLメールで、SPSのRowは書いてある通り
    • 本当は正規表現かつ、本文のBodyを分けてRowで取りたかった。
    • 業務につかうやつなので(item['body'] = message.getPlainBody();)でパパッとやりました。

markdownから変更するのがめんどいので、そのまま添付してます。 (できる方法あるんかいな?(''ω''))

~
function mailandLine () {
  // 保存したいスプレッドシートのURLをここに書き込む
  var sheet_url = '〇〇〇' ;
  // スプレッドシートのシート名をここに書き込む
  var sheet_name = '〇〇〇';
  // 問い合わせメールの抽出条件
  var strTerms = 'label:〇〇〇';

var existence_check = true;

var ss = SpreadsheetApp.openByUrl(sheet_url); var sheet = ss.getSheetByName(sheet_name); var existence_keys = fetchExistenceKeys(); var mail_data = fetchMailData(); for (var i = 0; item = mail_data[i]; i++) { if (existence_check && existsData(item)) { continue; } sheet.appendRow(itemToRow(item)); }

function fetchExistenceKeys () { var existence_keys = {}; var sheet_data = sheet.getDataRange().getValues(); for (var i = 0; row = sheet_data[i]; i++) { existence_keys[generateKey(rowToItem(row))] = true; } return existence_keys; }

function existsData (item) { if (existence_keys[generateKey(item)]) { return true; } return false; }

function generateKey (item) { var key = item['date'] + '' + item['subject'] + '' + item['from'] + '_' + item['to']; // Logger.log(key); return key; }

function rowToItem (row) { var item = {}; item['date'] = row[0]; item['subject'] = row[1]; item['from'] = row[2]; item['to'] = row[3]; return item; }

function itemToRow (item) { var row = []; row[0] = item['date']; row[1] = item['subject']; row[2] = item['from']; row[3] = item['to']; row[4] = item['body']; return row; }

function fetchMailData () { var result = []; var threads = GmailApp.search(strTerms); for (var i = 0; it = threads[i]; i++) { var messages = it.getMessages(); for (var j = 0; message = messages[j]; j++) { var item = {}; item['date'] = message.getDate(); item['subject'] = message.getSubject(); item['from'] = message.getFrom(); item['to'] = message.getTo(); item['body'] = message.getPlainBody(); result.push(item); } } return result; }
}

~