Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- error_reporting(E_ERROR | E_WARNING | E_PARSE);
- // --------------------------------------------
- // 対象日時チェック(コマンドライン引数かURLパラメータか)
- $target_date = $_REQUEST['$target_date'] ? $_REQUEST['$target_date'] : ($argv[1] ? $argv[1] : date('Ymd'));
- $year = substr($target_date,0,4);
- $month = substr($target_date,4,2);
- $day = substr($target_date,6,2);
- if (false === checkdate($month,$day,$year)){
- echo "Incorrect date and time\n";
- exit;
- }
- // --------------------------------------------
- // 履歴データファイル(環境毎に適宜変更を)
- $dbfile = dirname(dirname(dirname(dirname(dirname(__FILE__)))))."/AppData/Local/Google/Chrome/user_data/Default/History";
- // --------------------------------------------
- // 既に日報生成済みならやらない
- if ( file_exists(dirname(__FILE__).'/report_'.$year.$month.$day.'.txt') ){
- # echo "report exists...Done\n";
- # exit;
- }
- // --------------------------------------------
- // メールボックス接続
- $mailbox="{xxxxxxxxxx}INBOX";
- $user="xxxxxxxxxx";
- $pass="xxxxxxxxxx";
- $mbox = imap_open( $mailbox, $user ,$pass) or die("接続エラー\n");
- // --------------------------------------------
- // メールボックスのメッセージ数を取得
- $cnt=imap_num_recent($mbox);
- $count = imap_num_msg($mbox);
- // とりあえず100件
- for($idx=0;$idx<100;$idx++){
- $head = imap_header($mbox, $count - $idx);
- // 受信日時
- $check_date =strtotime($head->date);
- // 対象日時(定時の17:30以降の時間帯に地下鉄駅を利用したログを監視)
- $min = mktime(17,30,0,$month,$day,$year);
- $max = mktime(23,59,59,$month,$day,$year);
- if ( $min <= $check_date AND $max >= $check_date) {
- // IFTTTから送信されてきた件名「通勤メール」の有無をチェック
- $subject = mb_decode_mimeheader($head->subject);
- if (preg_match("/通勤メール/",$subject)){
- // 帰宅した!日報生成
- // SqliteでChromeの履歴データにアクセス
- $db = new SQLite3($dbfile);
- $sql= <<<__SQL__
- SELECT
- datetime(last_visit_time / 1000000 + (strftime('%s', '1601-01-01') + (60*60*9)), 'unixepoch') as date,
- title,
- url
- FROM urls
- WHERE date(last_visit_time / 1000000 + (strftime('%s', '1601-01-01') + (60*60*9)),'unixepoch') = '$year-$month-$day';
- __SQL__;
- $results = $db->query($sql);
- while ($row = $results->fetchArray()) {
- list($protocol,$dummy,$domain) = explode('/',$row['url']);
- // ドメイン毎に集計
- $group[$domain][$row['date']]=$row['title'];
- }
- foreach($group as $domain => $value){
- $report .= "・".$domain.PHP_EOL;
- foreach($value as $date => $title){
- $report .= " ".$date.' '.$title.PHP_EOL;
- }
- }
- $db->close();
- $report = <<<__TEXT__
- --- 業務内容 ---
- $report
- --- 感想 / 今日の一言
- お疲れ様でした!!!
- __TEXT__;
- file_put_contents(dirname(__FILE__).'/report_'.$year.$month.$day.'.txt',$report);
- break;
- }
- }
- }
- imap_close($mbox);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement