@@ -58,16 +58,16 @@ |
||
58 | 58 | 'values' => $values); |
59 | 59 | } |
60 | 60 | |
61 | - global $container; |
|
62 | - $sent = $container['mail'] |
|
63 | - ->addTo($container['config']->admin_email) |
|
64 | - ->setSubject('Waterfall Site Contact') |
|
65 | - ->setPlainMessage( |
|
66 | - "Name: {$values->name}\n" . |
|
67 | - "Email: {$values->email}\n" . |
|
68 | - "Message: {$values->message}" |
|
69 | - ) |
|
70 | - ->send(); |
|
61 | + global $container; |
|
62 | + $sent = $container['mail'] |
|
63 | + ->addTo($container['config']->admin_email) |
|
64 | + ->setSubject('Waterfall Site Contact') |
|
65 | + ->setPlainMessage( |
|
66 | + "Name: {$values->name}\n" . |
|
67 | + "Email: {$values->email}\n" . |
|
68 | + "Message: {$values->message}" |
|
69 | + ) |
|
70 | + ->send(); |
|
71 | 71 | |
72 | 72 | return (object) array('display' => 'success'); |
73 | 73 | } |
@@ -60,16 +60,16 @@ |
||
60 | 60 | 'values' => $values); |
61 | 61 | } |
62 | 62 | |
63 | - global $container; |
|
64 | - $sent = $container['mail'] |
|
65 | - ->addTo($container['config']->admin_email) |
|
66 | - ->setSubject('Home Page Contact') |
|
67 | - ->setPlainMessage( |
|
68 | - "Name: {$values->name}\n" . |
|
69 | - "Email: {$values->email}\n" . |
|
70 | - "Message: {$values->message}" |
|
71 | - ) |
|
72 | - ->send(); |
|
63 | + global $container; |
|
64 | + $sent = $container['mail'] |
|
65 | + ->addTo($container['config']->admin_email) |
|
66 | + ->setSubject('Home Page Contact') |
|
67 | + ->setPlainMessage( |
|
68 | + "Name: {$values->name}\n" . |
|
69 | + "Email: {$values->email}\n" . |
|
70 | + "Message: {$values->message}" |
|
71 | + ) |
|
72 | + ->send(); |
|
73 | 73 | |
74 | 74 | return (object) array('display' => 'success'); |
75 | 75 | } |
@@ -167,26 +167,26 @@ |
||
167 | 167 | } |
168 | 168 | } |
169 | 169 | |
170 | - $site = URLDecode::getSite(); |
|
170 | + $site = URLDecode::getSite(); |
|
171 | 171 | |
172 | - if ($site == 'blog') { |
|
173 | - $subject = "New Comment on Jacob Emerick's Blog"; |
|
174 | - $message = "Hello!\nThere has been a new comment on the post '{$this->page_title}' at Jacob Emerick's Blog. You have chosen to be notified of it - please reply to [email protected] if you would like to be removed from these notifications.\n\nOn " . date('F j, Y g:i a') . ", " . Request::getPost('name') . " commented...\n" . Request::getPost('comment') . "\n\nVisit {$this->full_path}#comments to see and reply to all the comments on this post.\nThank you!"; |
|
175 | - } else if ($site == 'waterfalls') { |
|
176 | - $subject = "New Comment on Waterfalls of the Keweenaw"; |
|
177 | - $message = "Hello!\nThere has been a new comment on the page '{$this->page_title}' at Waterfalls of the Keweenaw. You have chosen to be notified of it - please reply to [email protected] if you would like to be removed from these notifications.\n\nOn " . date('F j, Y g:i a') . ", " . Request::getPost('name') . " commented...\n" . Request::getPost('comment') . "\n\nVisit {$this->full_path}#comments to see and reply to all the comments on this post.\nThank you!"; |
|
178 | - } |
|
172 | + if ($site == 'blog') { |
|
173 | + $subject = "New Comment on Jacob Emerick's Blog"; |
|
174 | + $message = "Hello!\nThere has been a new comment on the post '{$this->page_title}' at Jacob Emerick's Blog. You have chosen to be notified of it - please reply to [email protected] if you would like to be removed from these notifications.\n\nOn " . date('F j, Y g:i a') . ", " . Request::getPost('name') . " commented...\n" . Request::getPost('comment') . "\n\nVisit {$this->full_path}#comments to see and reply to all the comments on this post.\nThank you!"; |
|
175 | + } else if ($site == 'waterfalls') { |
|
176 | + $subject = "New Comment on Waterfalls of the Keweenaw"; |
|
177 | + $message = "Hello!\nThere has been a new comment on the page '{$this->page_title}' at Waterfalls of the Keweenaw. You have chosen to be notified of it - please reply to [email protected] if you would like to be removed from these notifications.\n\nOn " . date('F j, Y g:i a') . ", " . Request::getPost('name') . " commented...\n" . Request::getPost('comment') . "\n\nVisit {$this->full_path}#comments to see and reply to all the comments on this post.\nThank you!"; |
|
178 | + } |
|
179 | 179 | |
180 | - global $container; |
|
180 | + global $container; |
|
181 | 181 | |
182 | 182 | foreach($email_recipient_array as $email_recipient) |
183 | 183 | { |
184 | - $sent = $container['mail'] |
|
185 | - ->addTo($email_recipient['email'], $email_recipient['name']) |
|
186 | - ->addBCC($container['config']->admin_email) |
|
187 | - ->setSubject($subject) |
|
188 | - ->setPlainMessage($message) |
|
189 | - ->send(); |
|
184 | + $sent = $container['mail'] |
|
185 | + ->addTo($email_recipient['email'], $email_recipient['name']) |
|
186 | + ->addBCC($container['config']->admin_email) |
|
187 | + ->setSubject($subject) |
|
188 | + ->setPlainMessage($message) |
|
189 | + ->send(); |
|
190 | 190 | } |
191 | 191 | } |
192 | 192 |
@@ -22,28 +22,28 @@ |
||
22 | 22 | |
23 | 23 | // sets up shutdown function to display profiler |
24 | 24 | register_shutdown_function(function () use ($container) { |
25 | - if ( |
|
26 | - !isset($_COOKIE['debugger']) || |
|
27 | - $_COOKIE['debugger'] != 'display' |
|
28 | - ) { |
|
29 | - return; |
|
30 | - } |
|
31 | - |
|
32 | - $dbProfiles = $container['db_connection_locator'] |
|
33 | - ->getRead() |
|
34 | - ->getProfiler() |
|
35 | - ->getProfiles(); |
|
36 | - $dbProfiles = array_filter($dbProfiles, function ($profile) { |
|
37 | - return $profile['function'] == 'perform'; |
|
38 | - }); |
|
39 | - $dbProfiles = array_map(function ($profile) { |
|
40 | - return [ |
|
41 | - 'sql' => trim(preg_replace('/\s+/', ' ', $profile['statement'])), |
|
42 | - 'parameters' => $profile['bind_values'], |
|
43 | - 'time' => $profile['duration'], |
|
44 | - ]; |
|
45 | - }, $dbProfiles); |
|
46 | - $container['profiler']->setProfiledQueries($dbProfiles); |
|
47 | - $container['profiler']->setDisplay(new Particletree\Pqp\Display()); |
|
48 | - $container['profiler']->display($container['db_connection_locator']->getRead()); |
|
25 | + if ( |
|
26 | + !isset($_COOKIE['debugger']) || |
|
27 | + $_COOKIE['debugger'] != 'display' |
|
28 | + ) { |
|
29 | + return; |
|
30 | + } |
|
31 | + |
|
32 | + $dbProfiles = $container['db_connection_locator'] |
|
33 | + ->getRead() |
|
34 | + ->getProfiler() |
|
35 | + ->getProfiles(); |
|
36 | + $dbProfiles = array_filter($dbProfiles, function ($profile) { |
|
37 | + return $profile['function'] == 'perform'; |
|
38 | + }); |
|
39 | + $dbProfiles = array_map(function ($profile) { |
|
40 | + return [ |
|
41 | + 'sql' => trim(preg_replace('/\s+/', ' ', $profile['statement'])), |
|
42 | + 'parameters' => $profile['bind_values'], |
|
43 | + 'time' => $profile['duration'], |
|
44 | + ]; |
|
45 | + }, $dbProfiles); |
|
46 | + $container['profiler']->setProfiledQueries($dbProfiles); |
|
47 | + $container['profiler']->setDisplay(new Particletree\Pqp\Display()); |
|
48 | + $container['profiler']->display($container['db_connection_locator']->getRead()); |
|
49 | 49 | }); |
@@ -13,24 +13,24 @@ discard block |
||
13 | 13 | |
14 | 14 | $blogFeed = Feed::loadRss('http://blog.jacobemerick.com/rss.xml'); |
15 | 15 | foreach ($blogFeed->item as $item) { |
16 | - $datetime = new DateTime($item->pubDate); |
|
17 | - if ($datetime <= $mostRecentBlogDateTime) { |
|
18 | - // break; |
|
19 | - } |
|
20 | - |
|
21 | - $uniqueBlogCheck = $blogRepository->getBlogByPermalink((string) $item->guid); |
|
22 | - if ($uniqueBlogCheck !== false) { |
|
23 | - continue; |
|
24 | - } |
|
25 | - |
|
26 | - $datetime->setTimezone($container['default_timezone']); |
|
27 | - $metadata = json_decode(json_encode($item), true); |
|
28 | - |
|
29 | - $blogRepository->insertBlog( |
|
30 | - (string) $item->guid, |
|
31 | - $datetime, |
|
32 | - $metadata |
|
33 | - ); |
|
16 | + $datetime = new DateTime($item->pubDate); |
|
17 | + if ($datetime <= $mostRecentBlogDateTime) { |
|
18 | + // break; |
|
19 | + } |
|
20 | + |
|
21 | + $uniqueBlogCheck = $blogRepository->getBlogByPermalink((string) $item->guid); |
|
22 | + if ($uniqueBlogCheck !== false) { |
|
23 | + continue; |
|
24 | + } |
|
25 | + |
|
26 | + $datetime->setTimezone($container['default_timezone']); |
|
27 | + $metadata = json_decode(json_encode($item), true); |
|
28 | + |
|
29 | + $blogRepository->insertBlog( |
|
30 | + (string) $item->guid, |
|
31 | + $datetime, |
|
32 | + $metadata |
|
33 | + ); |
|
34 | 34 | } |
35 | 35 | |
36 | 36 | $blogCommentRepository = new BlogCommentRepository($container['db_connection_locator']); |
@@ -41,22 +41,22 @@ discard block |
||
41 | 41 | |
42 | 42 | $commentFeed = Feed::loadRss('http://blog.jacobemerick.com/rss-comments.xml'); |
43 | 43 | foreach ($commentFeed->item as $item) { |
44 | - $datetime = new DateTime($item->pubDate); |
|
45 | - if ($datetime <= $mostRecentBlogCommentDateTime) { |
|
46 | - break; |
|
47 | - } |
|
48 | - |
|
49 | - $uniqueBlogCommentCheck = $blogCommentRepository->getBlogCommentByPermalink((string) $item->guid); |
|
50 | - if ($uniqueBlogCommentCheck !== false) { |
|
51 | - continue; |
|
52 | - } |
|
53 | - |
|
54 | - $datetime->setTimezone($container['default_timezone']); |
|
55 | - $metadata = json_decode(json_encode($item), true); |
|
56 | - |
|
57 | - $blogCommentRepository->insertBlogComment( |
|
58 | - (string) $item->guid, |
|
59 | - $datetime, |
|
60 | - $metadata |
|
61 | - ); |
|
44 | + $datetime = new DateTime($item->pubDate); |
|
45 | + if ($datetime <= $mostRecentBlogCommentDateTime) { |
|
46 | + break; |
|
47 | + } |
|
48 | + |
|
49 | + $uniqueBlogCommentCheck = $blogCommentRepository->getBlogCommentByPermalink((string) $item->guid); |
|
50 | + if ($uniqueBlogCommentCheck !== false) { |
|
51 | + continue; |
|
52 | + } |
|
53 | + |
|
54 | + $datetime->setTimezone($container['default_timezone']); |
|
55 | + $metadata = json_decode(json_encode($item), true); |
|
56 | + |
|
57 | + $blogCommentRepository->insertBlogComment( |
|
58 | + (string) $item->guid, |
|
59 | + $datetime, |
|
60 | + $metadata |
|
61 | + ); |
|
62 | 62 | } |
@@ -1,210 +1,210 @@ |
||
1 | 1 | <? |
2 | 2 | |
3 | 3 | Loader::load('collector', array( |
4 | - 'image/AlbumCollector', |
|
5 | - 'waterfall/LogCollector')); |
|
4 | + 'image/AlbumCollector', |
|
5 | + 'waterfall/LogCollector')); |
|
6 | 6 | Loader::load('controller', 'waterfalls/DefaultPageController'); |
7 | 7 | |
8 | 8 | final class LogController extends DefaultPageController |
9 | 9 | { |
10 | 10 | |
11 | - private static $AUTHOR = 'Jacob Emerick'; |
|
12 | - private static $AUTHOR_URL = 'http://home.jacobemerick.com/'; |
|
13 | - private static $JOURNAL_DIRECTORY = 'journal'; |
|
14 | - |
|
15 | - private static $FULL_IMAGE_LINK = '/photo/%s/%s-size-standard.jpg'; |
|
16 | - private static $THUMB_IMAGE_NODE = '<img src="/photo/%s/%s-size-thumb.jpg" alt="%s" height="%s" width="%s" />'; |
|
17 | - private static $MEDIUM_IMAGE_NODE = '<img src="/photo/%s/%s-size-small.jpg" alt="%s" height="375" width="500" />'; |
|
18 | - |
|
19 | - private $log; |
|
20 | - |
|
21 | - public function __construct() |
|
22 | - { |
|
23 | - parent::__construct(); |
|
24 | - |
|
25 | - $log_path = URLDecode::getPiece(2); |
|
26 | - |
|
27 | - $this->log = LogCollector::getByAlias($log_path); |
|
28 | - if(!$this->log) |
|
29 | - $this->eject(); |
|
30 | - |
|
31 | - $this->parent_navigation_item = 'journal'; |
|
32 | - |
|
33 | - $this->handle_comment_submit( |
|
34 | - self::$WATERFALL_SITE_ID, |
|
35 | - $this->log->alias, |
|
36 | - Loader::getRootUrl('waterfalls') . self::$JOURNAL_DIRECTORY . '/' . $this->log->alias . '/', |
|
37 | - $this->log->title); |
|
38 | - |
|
39 | - $this->add_waterfall_js(); |
|
40 | - } |
|
41 | - |
|
42 | - protected function set_head_data() |
|
43 | - { |
|
44 | - parent::set_head_data(); |
|
45 | - |
|
46 | - $this->set_title("{$this->log->title} | " . self::$WEBSITE_TITLE); |
|
47 | - $this->set_description($this->log->introduction); |
|
48 | - |
|
49 | - $keyword_array = array(); |
|
50 | - $tag_result = LogCollector::getTagListForLog($this->log->id); |
|
51 | - foreach($tag_result as $tag) |
|
52 | - { |
|
53 | - $keyword_array[] = $tag->name; |
|
54 | - } |
|
55 | - |
|
56 | - $this->set_keywords($keyword_array); |
|
57 | - } |
|
58 | - |
|
59 | - protected function set_body_data($page_type = 'normal') |
|
60 | - { |
|
61 | - parent::set_body_data($page_type); |
|
62 | - |
|
63 | - $this->set_body('view', 'Log'); |
|
64 | - |
|
65 | - $body_data = $this->get_formatted_log(); |
|
66 | - $body_data['comment_array'] = $this->get_comment_array(self::$WATERFALL_SITE_ID, $this->log->alias); |
|
67 | - $body_data['sidebar'] = $this->get_sidebar(); |
|
68 | - $body_data['series'] = $this->get_series(); |
|
69 | - $body_data['album'] = $this->get_album(); |
|
70 | - |
|
71 | - $this->set_body('data', $body_data); |
|
72 | - } |
|
73 | - |
|
74 | - private function get_formatted_log() |
|
75 | - { |
|
76 | - $formatted_log = array(); |
|
77 | - |
|
78 | - $formatted_log['introduction'] = $this->get_log_introduction($this->log); |
|
79 | - $formatted_log['title'] = $this->log->title; |
|
80 | - $formatted_log['url'] = Loader::getRootURL('waterfalls') . self::$JOURNAL_DIRECTORY . '/' . $this->log->alias . '/'; |
|
81 | - |
|
82 | - $formatted_log['body'] = $this->get_formatted_log_body(); |
|
83 | - |
|
84 | - return $formatted_log; |
|
85 | - } |
|
86 | - |
|
87 | - private function get_log_introduction($log) |
|
88 | - { |
|
89 | - return array( |
|
90 | - 'title' => $log->title, |
|
91 | - 'url' => Loader::getRootURL('waterfalls') . self::$JOURNAL_DIRECTORY . '/' . $log->alias . '/', |
|
92 | - 'date' => $this->get_parsed_date($log->date), |
|
93 | - 'publish_date' => $this->get_parsed_date($log->publish_date), |
|
94 | - 'introduction' => $log->introduction, |
|
95 | - 'image' => sprintf( |
|
96 | - self::$MEDIUM_IMAGE_NODE, |
|
97 | - $log->image_category, |
|
98 | - $log->image_name, |
|
99 | - $log->image_description), |
|
100 | - 'author' => self::$AUTHOR, |
|
101 | - 'author_url' => self::$AUTHOR_URL, |
|
102 | - ); |
|
103 | - } |
|
104 | - |
|
105 | - // @todo - link things up |
|
106 | - private function get_formatted_log_body() |
|
107 | - { |
|
108 | - $body = $this->log->body; |
|
109 | - |
|
110 | - $body = Content::instance('FixPhoto', $body)->activate(false, 'standard'); |
|
111 | - $body = Content::instance('FixInternalLink', $body)->activate(); |
|
112 | - |
|
113 | - return $body; |
|
114 | - } |
|
115 | - |
|
116 | - private function get_series() |
|
117 | - { |
|
118 | - $series = array( |
|
119 | - 'previous' => array(), |
|
120 | - 'next' => array()); |
|
121 | - |
|
122 | - $previous_log = LogCollector::getPreviousLog($this->log->id); |
|
123 | - if($previous_log != false) |
|
124 | - { |
|
125 | - $series['previous'] = (object) array( |
|
126 | - 'path' => '/' . self::$JOURNAL_DIRECTORY . '/' . $previous_log->alias . '/', |
|
127 | - 'title' => $previous_log->title, |
|
128 | - 'date' => $previous_log->date); |
|
129 | - } |
|
130 | - |
|
131 | - $next_log = LogCollector::getNextLog($this->log->id); |
|
132 | - if($next_log != false) |
|
133 | - { |
|
134 | - $series['next'] = (object) array( |
|
135 | - 'path' => '/' . self::$JOURNAL_DIRECTORY . '/' . $next_log->alias . '/', |
|
136 | - 'title' => $next_log->title, |
|
137 | - 'date' => $next_log->date); |
|
138 | - } |
|
139 | - |
|
140 | - return $series; |
|
141 | - } |
|
142 | - |
|
143 | - private function get_sidebar() |
|
144 | - { |
|
145 | - $sidebar = array(); |
|
146 | - |
|
147 | - $sidebar['companion_list'] = array(); |
|
148 | - $companions = LogCollector::getCompanionListForLog($this->log->id); |
|
149 | - foreach($companions as $companion) |
|
150 | - { |
|
151 | - $sidebar['companion_list'][] = (object) array( |
|
152 | - 'title' => $companion->name, |
|
153 | - 'path' => "/companion/{$companion->alias}/"); |
|
154 | - } |
|
155 | - |
|
156 | - $sidebar['tag_list'] = array(); |
|
157 | - $tags = LogCollector::getTagListForLog($this->log->id); |
|
158 | - foreach($tags as $tag) |
|
159 | - { |
|
160 | - $sidebar['tag_list'][] = (object) array( |
|
161 | - 'title' => $tag->name, |
|
162 | - 'path' => "/journal/tag/{$tag->alias}/"); |
|
163 | - } |
|
164 | - |
|
165 | - $sidebar['waterfall_list'] = array(); |
|
166 | - $waterfalls = LogCollector::getWaterfallListForLog($this->log->id); |
|
167 | - foreach($waterfalls as $waterfall) |
|
168 | - { |
|
169 | - $sidebar['waterfall_list'][] = (object) array( |
|
170 | - 'title' => $waterfall->name, |
|
171 | - 'path' => "/{$waterfall->watercourse_alias}/{$waterfall->alias}/"); |
|
172 | - } |
|
173 | - |
|
174 | - return $sidebar; |
|
175 | - } |
|
176 | - |
|
177 | - private function get_album() |
|
178 | - { |
|
179 | - $album = array(); |
|
180 | - |
|
181 | - if($this->log->album == 0) |
|
182 | - return $album; |
|
183 | - |
|
184 | - $photo_list = AlbumCollector::getPhotoListForAlbum($this->log->album); |
|
185 | - foreach($photo_list as $photo) |
|
186 | - { |
|
187 | - $photo_array = array(); |
|
188 | - $photo_array['full_link'] = sprintf(self::$FULL_IMAGE_LINK, $photo->category, $photo->name); |
|
189 | - $photo_array['description'] = $photo->description; |
|
11 | + private static $AUTHOR = 'Jacob Emerick'; |
|
12 | + private static $AUTHOR_URL = 'http://home.jacobemerick.com/'; |
|
13 | + private static $JOURNAL_DIRECTORY = 'journal'; |
|
14 | + |
|
15 | + private static $FULL_IMAGE_LINK = '/photo/%s/%s-size-standard.jpg'; |
|
16 | + private static $THUMB_IMAGE_NODE = '<img src="/photo/%s/%s-size-thumb.jpg" alt="%s" height="%s" width="%s" />'; |
|
17 | + private static $MEDIUM_IMAGE_NODE = '<img src="/photo/%s/%s-size-small.jpg" alt="%s" height="375" width="500" />'; |
|
18 | + |
|
19 | + private $log; |
|
20 | + |
|
21 | + public function __construct() |
|
22 | + { |
|
23 | + parent::__construct(); |
|
24 | + |
|
25 | + $log_path = URLDecode::getPiece(2); |
|
26 | + |
|
27 | + $this->log = LogCollector::getByAlias($log_path); |
|
28 | + if(!$this->log) |
|
29 | + $this->eject(); |
|
30 | + |
|
31 | + $this->parent_navigation_item = 'journal'; |
|
32 | + |
|
33 | + $this->handle_comment_submit( |
|
34 | + self::$WATERFALL_SITE_ID, |
|
35 | + $this->log->alias, |
|
36 | + Loader::getRootUrl('waterfalls') . self::$JOURNAL_DIRECTORY . '/' . $this->log->alias . '/', |
|
37 | + $this->log->title); |
|
38 | + |
|
39 | + $this->add_waterfall_js(); |
|
40 | + } |
|
41 | + |
|
42 | + protected function set_head_data() |
|
43 | + { |
|
44 | + parent::set_head_data(); |
|
45 | + |
|
46 | + $this->set_title("{$this->log->title} | " . self::$WEBSITE_TITLE); |
|
47 | + $this->set_description($this->log->introduction); |
|
48 | + |
|
49 | + $keyword_array = array(); |
|
50 | + $tag_result = LogCollector::getTagListForLog($this->log->id); |
|
51 | + foreach($tag_result as $tag) |
|
52 | + { |
|
53 | + $keyword_array[] = $tag->name; |
|
54 | + } |
|
55 | + |
|
56 | + $this->set_keywords($keyword_array); |
|
57 | + } |
|
58 | + |
|
59 | + protected function set_body_data($page_type = 'normal') |
|
60 | + { |
|
61 | + parent::set_body_data($page_type); |
|
62 | + |
|
63 | + $this->set_body('view', 'Log'); |
|
64 | + |
|
65 | + $body_data = $this->get_formatted_log(); |
|
66 | + $body_data['comment_array'] = $this->get_comment_array(self::$WATERFALL_SITE_ID, $this->log->alias); |
|
67 | + $body_data['sidebar'] = $this->get_sidebar(); |
|
68 | + $body_data['series'] = $this->get_series(); |
|
69 | + $body_data['album'] = $this->get_album(); |
|
70 | + |
|
71 | + $this->set_body('data', $body_data); |
|
72 | + } |
|
73 | + |
|
74 | + private function get_formatted_log() |
|
75 | + { |
|
76 | + $formatted_log = array(); |
|
77 | + |
|
78 | + $formatted_log['introduction'] = $this->get_log_introduction($this->log); |
|
79 | + $formatted_log['title'] = $this->log->title; |
|
80 | + $formatted_log['url'] = Loader::getRootURL('waterfalls') . self::$JOURNAL_DIRECTORY . '/' . $this->log->alias . '/'; |
|
81 | + |
|
82 | + $formatted_log['body'] = $this->get_formatted_log_body(); |
|
83 | + |
|
84 | + return $formatted_log; |
|
85 | + } |
|
86 | + |
|
87 | + private function get_log_introduction($log) |
|
88 | + { |
|
89 | + return array( |
|
90 | + 'title' => $log->title, |
|
91 | + 'url' => Loader::getRootURL('waterfalls') . self::$JOURNAL_DIRECTORY . '/' . $log->alias . '/', |
|
92 | + 'date' => $this->get_parsed_date($log->date), |
|
93 | + 'publish_date' => $this->get_parsed_date($log->publish_date), |
|
94 | + 'introduction' => $log->introduction, |
|
95 | + 'image' => sprintf( |
|
96 | + self::$MEDIUM_IMAGE_NODE, |
|
97 | + $log->image_category, |
|
98 | + $log->image_name, |
|
99 | + $log->image_description), |
|
100 | + 'author' => self::$AUTHOR, |
|
101 | + 'author_url' => self::$AUTHOR_URL, |
|
102 | + ); |
|
103 | + } |
|
104 | + |
|
105 | + // @todo - link things up |
|
106 | + private function get_formatted_log_body() |
|
107 | + { |
|
108 | + $body = $this->log->body; |
|
109 | + |
|
110 | + $body = Content::instance('FixPhoto', $body)->activate(false, 'standard'); |
|
111 | + $body = Content::instance('FixInternalLink', $body)->activate(); |
|
112 | + |
|
113 | + return $body; |
|
114 | + } |
|
115 | + |
|
116 | + private function get_series() |
|
117 | + { |
|
118 | + $series = array( |
|
119 | + 'previous' => array(), |
|
120 | + 'next' => array()); |
|
121 | + |
|
122 | + $previous_log = LogCollector::getPreviousLog($this->log->id); |
|
123 | + if($previous_log != false) |
|
124 | + { |
|
125 | + $series['previous'] = (object) array( |
|
126 | + 'path' => '/' . self::$JOURNAL_DIRECTORY . '/' . $previous_log->alias . '/', |
|
127 | + 'title' => $previous_log->title, |
|
128 | + 'date' => $previous_log->date); |
|
129 | + } |
|
130 | + |
|
131 | + $next_log = LogCollector::getNextLog($this->log->id); |
|
132 | + if($next_log != false) |
|
133 | + { |
|
134 | + $series['next'] = (object) array( |
|
135 | + 'path' => '/' . self::$JOURNAL_DIRECTORY . '/' . $next_log->alias . '/', |
|
136 | + 'title' => $next_log->title, |
|
137 | + 'date' => $next_log->date); |
|
138 | + } |
|
139 | + |
|
140 | + return $series; |
|
141 | + } |
|
142 | + |
|
143 | + private function get_sidebar() |
|
144 | + { |
|
145 | + $sidebar = array(); |
|
146 | + |
|
147 | + $sidebar['companion_list'] = array(); |
|
148 | + $companions = LogCollector::getCompanionListForLog($this->log->id); |
|
149 | + foreach($companions as $companion) |
|
150 | + { |
|
151 | + $sidebar['companion_list'][] = (object) array( |
|
152 | + 'title' => $companion->name, |
|
153 | + 'path' => "/companion/{$companion->alias}/"); |
|
154 | + } |
|
155 | + |
|
156 | + $sidebar['tag_list'] = array(); |
|
157 | + $tags = LogCollector::getTagListForLog($this->log->id); |
|
158 | + foreach($tags as $tag) |
|
159 | + { |
|
160 | + $sidebar['tag_list'][] = (object) array( |
|
161 | + 'title' => $tag->name, |
|
162 | + 'path' => "/journal/tag/{$tag->alias}/"); |
|
163 | + } |
|
164 | + |
|
165 | + $sidebar['waterfall_list'] = array(); |
|
166 | + $waterfalls = LogCollector::getWaterfallListForLog($this->log->id); |
|
167 | + foreach($waterfalls as $waterfall) |
|
168 | + { |
|
169 | + $sidebar['waterfall_list'][] = (object) array( |
|
170 | + 'title' => $waterfall->name, |
|
171 | + 'path' => "/{$waterfall->watercourse_alias}/{$waterfall->alias}/"); |
|
172 | + } |
|
173 | + |
|
174 | + return $sidebar; |
|
175 | + } |
|
176 | + |
|
177 | + private function get_album() |
|
178 | + { |
|
179 | + $album = array(); |
|
180 | + |
|
181 | + if($this->log->album == 0) |
|
182 | + return $album; |
|
183 | + |
|
184 | + $photo_list = AlbumCollector::getPhotoListForAlbum($this->log->album); |
|
185 | + foreach($photo_list as $photo) |
|
186 | + { |
|
187 | + $photo_array = array(); |
|
188 | + $photo_array['full_link'] = sprintf(self::$FULL_IMAGE_LINK, $photo->category, $photo->name); |
|
189 | + $photo_array['description'] = $photo->description; |
|
190 | 190 | |
191 | - if($photo->height < $photo->width) |
|
192 | - list($height, $width) = array(75, 100); |
|
193 | - else |
|
194 | - list($height, $width) = array(100, 75); |
|
191 | + if($photo->height < $photo->width) |
|
192 | + list($height, $width) = array(75, 100); |
|
193 | + else |
|
194 | + list($height, $width) = array(100, 75); |
|
195 | 195 | |
196 | - $photo_array['image_node'] = sprintf( |
|
197 | - self::$THUMB_IMAGE_NODE, |
|
198 | - $photo->category, |
|
199 | - $photo->name, |
|
200 | - $photo->description, |
|
201 | - $height, |
|
202 | - $width); |
|
196 | + $photo_array['image_node'] = sprintf( |
|
197 | + self::$THUMB_IMAGE_NODE, |
|
198 | + $photo->category, |
|
199 | + $photo->name, |
|
200 | + $photo->description, |
|
201 | + $height, |
|
202 | + $width); |
|
203 | 203 | |
204 | - $album[] = (object) $photo_array; |
|
205 | - } |
|
204 | + $album[] = (object) $photo_array; |
|
205 | + } |
|
206 | 206 | |
207 | - return $album; |
|
208 | - } |
|
207 | + return $album; |
|
208 | + } |
|
209 | 209 | |
210 | 210 | } |
@@ -10,7 +10,7 @@ discard block |
||
10 | 10 | |
11 | 11 | $handle = @fopen($config_path, 'r'); |
12 | 12 | if ($handle === false) { |
13 | - throw new RuntimeException("Could not load config"); |
|
13 | + throw new RuntimeException("Could not load config"); |
|
14 | 14 | } |
15 | 15 | $config = fread($handle, filesize($config_path)); |
16 | 16 | fclose($handle); |
@@ -18,7 +18,7 @@ discard block |
||
18 | 18 | $config = json_decode($config); |
19 | 19 | $last_json_error = json_last_error(); |
20 | 20 | if ($last_json_error !== JSON_ERROR_NONE) { |
21 | - throw new RuntimeException("Could not parse config - JSON error detected"); |
|
21 | + throw new RuntimeException("Could not parse config - JSON error detected"); |
|
22 | 22 | } |
23 | 23 | $container['config'] = $config; |
24 | 24 | |
@@ -26,64 +26,64 @@ discard block |
||
26 | 26 | // timezones are fun |
27 | 27 | date_default_timezone_set('America/Phoenix'); // todo - belongs in configuration |
28 | 28 | $container['default_timezone'] = function ($c) { |
29 | - return new DateTimeZone('America/Phoenix'); |
|
29 | + return new DateTimeZone('America/Phoenix'); |
|
30 | 30 | }; |
31 | 31 | |
32 | 32 | |
33 | 33 | // configure the db connections holder |
34 | 34 | $db_connections = new Aura\Sql\ConnectionLocator(); |
35 | 35 | $db_connections->setDefault(function () use ($config) { |
36 | - $connection = $config->database->slave; |
|
37 | - return new Aura\Sql\ExtendedPdo( |
|
38 | - "mysql:host={$connection->host}", |
|
39 | - $connection->user, |
|
40 | - $connection->password |
|
41 | - ); |
|
36 | + $connection = $config->database->slave; |
|
37 | + return new Aura\Sql\ExtendedPdo( |
|
38 | + "mysql:host={$connection->host}", |
|
39 | + $connection->user, |
|
40 | + $connection->password |
|
41 | + ); |
|
42 | 42 | }); |
43 | 43 | $db_connections->setWrite('master', function () use ($config) { |
44 | - $connection = $config->database->master; |
|
45 | - return new Aura\Sql\ExtendedPdo( |
|
46 | - "mysql:host={$connection->host}", |
|
47 | - $connection->user, |
|
48 | - $connection->password |
|
49 | - ); |
|
44 | + $connection = $config->database->master; |
|
45 | + return new Aura\Sql\ExtendedPdo( |
|
46 | + "mysql:host={$connection->host}", |
|
47 | + $connection->user, |
|
48 | + $connection->password |
|
49 | + ); |
|
50 | 50 | }); |
51 | 51 | $db_connections->setRead('slave', function () use ($config) { |
52 | - $connection = $config->database->slave; |
|
53 | - $pdo = new Aura\Sql\ExtendedPdo( |
|
54 | - "mysql:host={$connection->host}", |
|
55 | - $connection->user, |
|
56 | - $connection->password |
|
57 | - ); |
|
58 | - |
|
59 | - $profiler = new Aura\Sql\Profiler(); |
|
60 | - $profiler->setActive(true); |
|
61 | - $pdo->setProfiler($profiler); |
|
62 | - |
|
63 | - return $pdo; |
|
52 | + $connection = $config->database->slave; |
|
53 | + $pdo = new Aura\Sql\ExtendedPdo( |
|
54 | + "mysql:host={$connection->host}", |
|
55 | + $connection->user, |
|
56 | + $connection->password |
|
57 | + ); |
|
58 | + |
|
59 | + $profiler = new Aura\Sql\Profiler(); |
|
60 | + $profiler->setActive(true); |
|
61 | + $pdo->setProfiler($profiler); |
|
62 | + |
|
63 | + return $pdo; |
|
64 | 64 | }); |
65 | 65 | $container['db_connection_locator'] = $db_connections; |
66 | 66 | |
67 | 67 | |
68 | 68 | // setup mail handler |
69 | 69 | $container['mail'] = $container->factory(function ($c) { |
70 | - return new Jacobemerick\Archangel\Archangel(); |
|
70 | + return new Jacobemerick\Archangel\Archangel(); |
|
71 | 71 | }); |
72 | 72 | |
73 | 73 | |
74 | 74 | // setup the logger |
75 | 75 | $container['setup_logger'] = $container->protect(function ($name) use ($container) { |
76 | - $logger = new Monolog\Logger($name); |
|
76 | + $logger = new Monolog\Logger($name); |
|
77 | 77 | |
78 | - $logPath = __DIR__ . "/../logs/{$name}.log"; |
|
79 | - $streamHandler = new Monolog\Handler\StreamHandler($logPath, Monolog\Logger::INFO); |
|
80 | - $streamHandler->setFormatter( |
|
81 | - new Monolog\Formatter\LineFormatter("[%datetime%] %channel%.%level_name%: %message%\n") |
|
82 | - ); |
|
83 | - $logger->pushHandler($streamHandler); |
|
78 | + $logPath = __DIR__ . "/../logs/{$name}.log"; |
|
79 | + $streamHandler = new Monolog\Handler\StreamHandler($logPath, Monolog\Logger::INFO); |
|
80 | + $streamHandler->setFormatter( |
|
81 | + new Monolog\Formatter\LineFormatter("[%datetime%] %channel%.%level_name%: %message%\n") |
|
82 | + ); |
|
83 | + $logger->pushHandler($streamHandler); |
|
84 | 84 | |
85 | - Monolog\ErrorHandler::register($logger); |
|
86 | - $container['logger'] = $logger; |
|
85 | + Monolog\ErrorHandler::register($logger); |
|
86 | + $container['logger'] = $logger; |
|
87 | 87 | }); |
88 | 88 | |
89 | 89 |
@@ -11,58 +11,58 @@ discard block |
||
11 | 11 | |
12 | 12 | $lastBlogActivity = $activityRepository->getActivityLastUpdateByType('blog'); |
13 | 13 | if ($lastBlogActivity === false) { |
14 | - $lastBlogActivityDateTime = new DateTime('2008-05-03'); |
|
14 | + $lastBlogActivityDateTime = new DateTime('2008-05-03'); |
|
15 | 15 | } else { |
16 | - $lastBlogActivityDateTime = new DateTime($lastBlogActivity['updated_at']); |
|
17 | - $lastBlogActivityDateTime->modify('-5 days'); |
|
16 | + $lastBlogActivityDateTime = new DateTime($lastBlogActivity['updated_at']); |
|
17 | + $lastBlogActivityDateTime->modify('-5 days'); |
|
18 | 18 | } |
19 | 19 | $newBlogActivity = $blogRepository->getBlogsUpdatedSince($lastBlogActivityDateTime); |
20 | 20 | foreach ($newBlogActivity as $blog) { |
21 | - $uniqueBlogCheck = $activityRepository->getActivityByTypeId('blog', $blog['id']); |
|
22 | - if ($uniqueBlogCheck !== false) { |
|
23 | - continue; |
|
24 | - } |
|
25 | - |
|
26 | - $blogData = json_decode($blog['metadata'], true); |
|
27 | - $message = sprintf( |
|
28 | - 'Blogged about %s | %s.', |
|
29 | - str_replace('-', ' ', $blogData['category']), |
|
30 | - $blogData['title'] |
|
31 | - ); |
|
32 | - |
|
33 | - if (isset($blogData['enclosure'])) { |
|
34 | - $messageLong = sprintf( |
|
35 | - "<img src=\"%s\" alt=\"Blog | %s\" />\n" . |
|
36 | - "<h4><a href=\"%s\" title=\"Jacob Emerick's Blog | %s\">%s</a></h4>\n" . |
|
37 | - "<p>%s [<a href=\"%s\">read more</a></a>]</p>", |
|
38 | - $blogData['enclosure']['@attributes']['url'], |
|
39 | - $blogData['title'], |
|
40 | - $blogData['link'], |
|
41 | - $blogData['title'], |
|
42 | - $blogData['title'], |
|
43 | - htmlentities($blogData['description']), |
|
44 | - $blogData['link'] |
|
45 | - ); |
|
46 | - } else { |
|
47 | - $messageLong = sprintf( |
|
48 | - "<h4><a href=\"%s\" title=\"Jacob Emerick's Blog | %s\">%s</a></h4>\n" . |
|
49 | - "<p>%s [<a href=\"%s\">read more</a></a>]</p>", |
|
50 | - $blogData['link'], |
|
51 | - $blogData['title'], |
|
52 | - $blogData['title'], |
|
53 | - htmlentities($blogData['description']), |
|
54 | - $blogData['link'] |
|
55 | - ); |
|
56 | - } |
|
57 | - |
|
58 | - $activityRepository->insertActivity( |
|
59 | - $message, |
|
60 | - $messageLong, |
|
61 | - (new DateTime($blog['datetime'])), |
|
62 | - [], |
|
63 | - 'blog', |
|
64 | - $blog['id'] |
|
65 | - ); |
|
21 | + $uniqueBlogCheck = $activityRepository->getActivityByTypeId('blog', $blog['id']); |
|
22 | + if ($uniqueBlogCheck !== false) { |
|
23 | + continue; |
|
24 | + } |
|
25 | + |
|
26 | + $blogData = json_decode($blog['metadata'], true); |
|
27 | + $message = sprintf( |
|
28 | + 'Blogged about %s | %s.', |
|
29 | + str_replace('-', ' ', $blogData['category']), |
|
30 | + $blogData['title'] |
|
31 | + ); |
|
32 | + |
|
33 | + if (isset($blogData['enclosure'])) { |
|
34 | + $messageLong = sprintf( |
|
35 | + "<img src=\"%s\" alt=\"Blog | %s\" />\n" . |
|
36 | + "<h4><a href=\"%s\" title=\"Jacob Emerick's Blog | %s\">%s</a></h4>\n" . |
|
37 | + "<p>%s [<a href=\"%s\">read more</a></a>]</p>", |
|
38 | + $blogData['enclosure']['@attributes']['url'], |
|
39 | + $blogData['title'], |
|
40 | + $blogData['link'], |
|
41 | + $blogData['title'], |
|
42 | + $blogData['title'], |
|
43 | + htmlentities($blogData['description']), |
|
44 | + $blogData['link'] |
|
45 | + ); |
|
46 | + } else { |
|
47 | + $messageLong = sprintf( |
|
48 | + "<h4><a href=\"%s\" title=\"Jacob Emerick's Blog | %s\">%s</a></h4>\n" . |
|
49 | + "<p>%s [<a href=\"%s\">read more</a></a>]</p>", |
|
50 | + $blogData['link'], |
|
51 | + $blogData['title'], |
|
52 | + $blogData['title'], |
|
53 | + htmlentities($blogData['description']), |
|
54 | + $blogData['link'] |
|
55 | + ); |
|
56 | + } |
|
57 | + |
|
58 | + $activityRepository->insertActivity( |
|
59 | + $message, |
|
60 | + $messageLong, |
|
61 | + (new DateTime($blog['datetime'])), |
|
62 | + [], |
|
63 | + 'blog', |
|
64 | + $blog['id'] |
|
65 | + ); |
|
66 | 66 | } |
67 | 67 | |
68 | 68 | use Jacobemerick\Web\Domain\Stream\BlogComment\MysqlBlogCommentRepository as BlogCommentRepository; |
@@ -70,30 +70,30 @@ discard block |
||
70 | 70 | $blogCommentActivity = $blogCommentRepository->getBlogComments(); |
71 | 71 | $blogCommentHolder = []; |
72 | 72 | foreach ($blogCommentActivity as $blogComment) { |
73 | - $blogPermalink = $blogComment['permalink']; |
|
74 | - $blogPermalink = explode('#', $blogPermalink); |
|
75 | - $blogPermalink = current($blogPermalink); |
|
76 | - |
|
77 | - $blog = $blogRepository->getBlogByPermalink($blogPermalink); |
|
78 | - if (!array_key_exists($blog['id'], $blogCommentHolder)) { |
|
79 | - $blogCommentHolder[$blog['id']] = 1; |
|
80 | - } else { |
|
81 | - $blogCommentHolder[$blog['id']]++; |
|
82 | - } |
|
73 | + $blogPermalink = $blogComment['permalink']; |
|
74 | + $blogPermalink = explode('#', $blogPermalink); |
|
75 | + $blogPermalink = current($blogPermalink); |
|
76 | + |
|
77 | + $blog = $blogRepository->getBlogByPermalink($blogPermalink); |
|
78 | + if (!array_key_exists($blog['id'], $blogCommentHolder)) { |
|
79 | + $blogCommentHolder[$blog['id']] = 1; |
|
80 | + } else { |
|
81 | + $blogCommentHolder[$blog['id']]++; |
|
82 | + } |
|
83 | 83 | } |
84 | 84 | |
85 | 85 | foreach ($blogCommentHolder as $blogId => $commentCount) { |
86 | - $blogActivity = $activityRepository->getActivityByTypeId('blog', $blogId); |
|
87 | - $blogActivityMetadata = json_decode($blogActivity['metadata'], true); |
|
88 | - if ( |
|
89 | - !isset($blogActivityMetadata['comments']) || |
|
90 | - $blogActivityMetadata['comments'] != $commentCount |
|
91 | - ) { |
|
92 | - $activityRepository->updateActivityMetadata( |
|
93 | - $blogActivity['id'], |
|
94 | - ['comments' => $commentCount] |
|
95 | - ); |
|
96 | - } |
|
86 | + $blogActivity = $activityRepository->getActivityByTypeId('blog', $blogId); |
|
87 | + $blogActivityMetadata = json_decode($blogActivity['metadata'], true); |
|
88 | + if ( |
|
89 | + !isset($blogActivityMetadata['comments']) || |
|
90 | + $blogActivityMetadata['comments'] != $commentCount |
|
91 | + ) { |
|
92 | + $activityRepository->updateActivityMetadata( |
|
93 | + $blogActivity['id'], |
|
94 | + ['comments' => $commentCount] |
|
95 | + ); |
|
96 | + } |
|
97 | 97 | } |
98 | 98 | |
99 | 99 | // distance |
@@ -102,67 +102,67 @@ discard block |
||
102 | 102 | |
103 | 103 | $lastDailyMileActivity = $activityRepository->getActivityLastUpdateByType('distance'); |
104 | 104 | if ($lastDailyMileActivity === false) { |
105 | - $lastDailyMileActivityDateTime = new DateTime('2008-05-03'); |
|
105 | + $lastDailyMileActivityDateTime = new DateTime('2008-05-03'); |
|
106 | 106 | } else { |
107 | - $lastDailyMileActivityDateTime = new DateTime($lastDailyMileActivity['updated_at']); |
|
108 | - $lastDailyMileActivityDateTime->modify('-5 days'); |
|
107 | + $lastDailyMileActivityDateTime = new DateTime($lastDailyMileActivity['updated_at']); |
|
108 | + $lastDailyMileActivityDateTime->modify('-5 days'); |
|
109 | 109 | } |
110 | 110 | $newDailyMileActivity = $dailyMileRepository->getDailyMilesUpdatedSince($lastDailyMileActivityDateTime); |
111 | 111 | foreach ($newDailyMileActivity as $dailyMile) { |
112 | - $uniqueDailyMileCheck = $activityRepository->getActivityByTypeId('distance', $dailyMile['id']); |
|
113 | - if ($uniqueDailyMileCheck !== false) { |
|
114 | - continue; |
|
115 | - } |
|
116 | - |
|
117 | - $dailyMileData = json_decode($dailyMile['metadata'], true); |
|
118 | - if ($dailyMile['type'] == 'Hiking') { |
|
119 | - $message = sprintf( |
|
120 | - '%s %.2f %s and felt %s.', |
|
121 | - 'Hiked', |
|
122 | - $dailyMileData['workout']['distance']['value'], |
|
123 | - $dailyMileData['workout']['distance']['units'], |
|
124 | - $dailyMileData['workout']['felt'] |
|
125 | - ); |
|
126 | - $messageLong = "<p>{$message}</p>"; |
|
127 | - if (isset($dailyMileData['workout']['title'])) { |
|
128 | - $messageLong .= "\n<p>I was hiking up around the {$dailyMileData['workout']['title']} area.</p>"; |
|
129 | - } |
|
130 | - } else if ($dailyMile['type'] == 'Running') { |
|
131 | - $message = sprintf( |
|
132 | - '%s %.2f %s and felt %s.', |
|
133 | - 'Ran', |
|
134 | - $dailyMileData['workout']['distance']['value'], |
|
135 | - $dailyMileData['workout']['distance']['units'], |
|
136 | - $dailyMileData['workout']['felt'] |
|
137 | - ); |
|
138 | - $messageLong = "<p>{$message}</p>"; |
|
139 | - if (isset($dailyMileData['message'])) { |
|
140 | - $messageLong .= "\n<p>Afterwards, I was all like '{$dailyMileData['message']}'.</p>"; |
|
141 | - } |
|
142 | - } else if ($dailyMile['type'] == 'Walking') { |
|
143 | - $message = sprintf( |
|
144 | - '%s %.2f %s and felt %s.', |
|
145 | - 'Walked', |
|
146 | - $dailyMileData['workout']['distance']['value'], |
|
147 | - $dailyMileData['workout']['distance']['units'], |
|
148 | - $dailyMileData['workout']['felt'] |
|
149 | - ); |
|
150 | - $messageLong = "<p>{$message}</p>"; |
|
151 | - if (isset($dailyMileData['message'])) { |
|
152 | - $messageLong .= "\n<p>{$dailyMileData['message']}</p>"; |
|
153 | - } |
|
154 | - } else { |
|
155 | - continue; |
|
156 | - } |
|
157 | - |
|
158 | - $activityRepository->insertActivity( |
|
159 | - $message, |
|
160 | - $messageLong, |
|
161 | - (new DateTime($dailyMile['datetime'])), |
|
162 | - [], |
|
163 | - 'distance', |
|
164 | - $dailyMile['id'] |
|
165 | - ); |
|
112 | + $uniqueDailyMileCheck = $activityRepository->getActivityByTypeId('distance', $dailyMile['id']); |
|
113 | + if ($uniqueDailyMileCheck !== false) { |
|
114 | + continue; |
|
115 | + } |
|
116 | + |
|
117 | + $dailyMileData = json_decode($dailyMile['metadata'], true); |
|
118 | + if ($dailyMile['type'] == 'Hiking') { |
|
119 | + $message = sprintf( |
|
120 | + '%s %.2f %s and felt %s.', |
|
121 | + 'Hiked', |
|
122 | + $dailyMileData['workout']['distance']['value'], |
|
123 | + $dailyMileData['workout']['distance']['units'], |
|
124 | + $dailyMileData['workout']['felt'] |
|
125 | + ); |
|
126 | + $messageLong = "<p>{$message}</p>"; |
|
127 | + if (isset($dailyMileData['workout']['title'])) { |
|
128 | + $messageLong .= "\n<p>I was hiking up around the {$dailyMileData['workout']['title']} area.</p>"; |
|
129 | + } |
|
130 | + } else if ($dailyMile['type'] == 'Running') { |
|
131 | + $message = sprintf( |
|
132 | + '%s %.2f %s and felt %s.', |
|
133 | + 'Ran', |
|
134 | + $dailyMileData['workout']['distance']['value'], |
|
135 | + $dailyMileData['workout']['distance']['units'], |
|
136 | + $dailyMileData['workout']['felt'] |
|
137 | + ); |
|
138 | + $messageLong = "<p>{$message}</p>"; |
|
139 | + if (isset($dailyMileData['message'])) { |
|
140 | + $messageLong .= "\n<p>Afterwards, I was all like '{$dailyMileData['message']}'.</p>"; |
|
141 | + } |
|
142 | + } else if ($dailyMile['type'] == 'Walking') { |
|
143 | + $message = sprintf( |
|
144 | + '%s %.2f %s and felt %s.', |
|
145 | + 'Walked', |
|
146 | + $dailyMileData['workout']['distance']['value'], |
|
147 | + $dailyMileData['workout']['distance']['units'], |
|
148 | + $dailyMileData['workout']['felt'] |
|
149 | + ); |
|
150 | + $messageLong = "<p>{$message}</p>"; |
|
151 | + if (isset($dailyMileData['message'])) { |
|
152 | + $messageLong .= "\n<p>{$dailyMileData['message']}</p>"; |
|
153 | + } |
|
154 | + } else { |
|
155 | + continue; |
|
156 | + } |
|
157 | + |
|
158 | + $activityRepository->insertActivity( |
|
159 | + $message, |
|
160 | + $messageLong, |
|
161 | + (new DateTime($dailyMile['datetime'])), |
|
162 | + [], |
|
163 | + 'distance', |
|
164 | + $dailyMile['id'] |
|
165 | + ); |
|
166 | 166 | } |
167 | 167 | |
168 | 168 | // github |
@@ -171,128 +171,128 @@ discard block |
||
171 | 171 | |
172 | 172 | $lastGithubActivity = $activityRepository->getActivityLastUpdateByType('github'); |
173 | 173 | if ($lastGithubActivity === false) { |
174 | - $lastGithubActivityDateTime = new DateTime('2015-10-01'); |
|
174 | + $lastGithubActivityDateTime = new DateTime('2015-10-01'); |
|
175 | 175 | } else { |
176 | - $lastGithubActivityDateTime = new DateTime($lastGithubActivity['updated_at']); |
|
177 | - $lastGithubActivityDateTime->modify('-5 days'); |
|
176 | + $lastGithubActivityDateTime = new DateTime($lastGithubActivity['updated_at']); |
|
177 | + $lastGithubActivityDateTime->modify('-5 days'); |
|
178 | 178 | } |
179 | 179 | |
180 | 180 | $newGithubActivity = $githubRepository->getGithubsUpdatedSince($lastGithubActivityDateTime); |
181 | 181 | foreach ($newGithubActivity as $github) { |
182 | - $uniqueGithubCheck = $activityRepository->getActivityByTypeId('github', $github['id']); |
|
183 | - if ($uniqueGithubCheck !== false) { |
|
184 | - continue; |
|
185 | - } |
|
186 | - |
|
187 | - $githubData = json_decode($github['metadata'], true); |
|
188 | - |
|
189 | - if ($github['type'] == 'CreateEvent') { |
|
190 | - if ( |
|
191 | - $githubData['payload']['ref_type'] == 'branch' || |
|
192 | - $githubData['payload']['ref_type'] == 'tag' |
|
193 | - ) { |
|
194 | - $message = sprintf( |
|
195 | - 'Created %s %s at %s.', |
|
196 | - $githubData['payload']['ref_type'], |
|
197 | - $githubData['payload']['ref'], |
|
198 | - $githubData['repo']['name'] |
|
199 | - ); |
|
200 | - $messageLong = sprintf( |
|
201 | - '<p>Created %s %s at <a href="%s" target="_blank" title="Github | %s">%s</a>.</p>', |
|
202 | - $githubData['payload']['ref_type'], |
|
203 | - $githubData['payload']['ref'], |
|
204 | - "https://github.com/{$githubData['repo']['name']}", |
|
205 | - $githubData['repo']['name'], |
|
206 | - $githubData['repo']['name'] |
|
207 | - ); |
|
208 | - } else if ($githubData['payload']['ref_type'] == 'repository') { |
|
209 | - $message = sprintf( |
|
210 | - 'Created %s %s.', |
|
211 | - $githubData['payload']['ref_type'], |
|
212 | - $githubData['repo']['name'] |
|
213 | - ); |
|
214 | - $messageLong = sprintf( |
|
215 | - '<p>Created %s <a href="%s" target="_blank" title="Github | %s">%s</a>.</p>', |
|
216 | - $githubData['payload']['ref_type'], |
|
217 | - "https://github.com/{$githubData['repo']['name']}", |
|
218 | - $githubData['repo']['name'], |
|
219 | - $githubData['repo']['name'] |
|
220 | - ); |
|
221 | - } else { |
|
222 | - continue; |
|
223 | - } |
|
224 | - } else if ($github['type'] == 'ForkEvent') { |
|
225 | - $message = sprintf( |
|
226 | - 'Forked %s to %s', |
|
227 | - $githubData['repo']['name'], |
|
228 | - $githubData['payload']['forkee']['full_name'] |
|
229 | - ); |
|
230 | - $messageLong = sprintf( |
|
231 | - '<p>Forked <a href="%s" target="_blank" title="Github | %s">%s</a> to <a href="%s" target="_blank" title="Github | %s">%s</a>.', |
|
232 | - "https://github.com/{$githubData['repo']['name']}", |
|
233 | - $githubData['repo']['name'], |
|
234 | - $githubData['repo']['name'], |
|
235 | - $githubData['payload']['forkee']['html_url'], |
|
236 | - $githubData['payload']['forkee']['full_name'], |
|
237 | - $githubData['payload']['forkee']['full_name'] |
|
238 | - ); |
|
239 | - } else if ($github['type'] == 'PullRequestEvent') { |
|
240 | - $message = sprintf( |
|
241 | - '%s a pull request at %s', |
|
242 | - ucwords($githubData['payload']['action']), |
|
243 | - $githubData['repo']['name'] |
|
244 | - ); |
|
245 | - $messageLong = sprintf( |
|
246 | - '<p>%s pull request <a href="%s" target="_blank" title="Github | %s PR %d">%d</a> at <a href="%s" target="_blank" title="Github | %s">%s</a>.</p>', |
|
247 | - ucwords($githubData['payload']['action']), |
|
248 | - $githubData['payload']['pull_request']['html_url'], |
|
249 | - $githubData['repo']['name'], |
|
250 | - $githubData['payload']['number'], |
|
251 | - $githubData['payload']['number'], |
|
252 | - "https://github.com/{$githubData['repo']['name']}", |
|
253 | - $githubData['repo']['name'], |
|
254 | - $githubData['repo']['name'] |
|
255 | - ); |
|
256 | - } else if ($github['type'] == 'PushEvent') { |
|
257 | - $message = sprintf( |
|
258 | - 'Pushed some code at %s.', |
|
259 | - $githubData['repo']['name'] |
|
260 | - ); |
|
261 | - $messageLong = sprintf( |
|
262 | - "<p>Pushed some code at <a href=\"%s\" target=\"_blank\" title=\"Github | %s\">%s</a>.</p>\n", |
|
263 | - $githubData['payload']['ref'], |
|
264 | - "https://github.com/{$githubData['repo']['name']}", |
|
265 | - $githubData['repo']['name'], |
|
266 | - $githubData['repo']['name'] |
|
267 | - ); |
|
268 | - $messageLong .= "<ul>\n"; |
|
269 | - foreach ($githubData['payload']['commits'] as $commit) { |
|
270 | - $messageShort = $commit['message']; |
|
271 | - $messageShort = strtok($messageShort, "\n"); |
|
272 | - if (strlen($messageShort) > 72) { |
|
273 | - $messageShort = wordwrap($messageShort, 65); |
|
274 | - $messageShort = strtok($messageShort, "\n"); |
|
275 | - $messageShort .= '...'; |
|
276 | - } |
|
277 | - $messageLong .= sprintf( |
|
278 | - "<li><a href=\"%s\" target=\"_blank\" title=\"Github | %s\">%s</a> %s.</li>\n", |
|
279 | - "https://github.com/{$githubData['repo']['name']}/commit/{$commit['sha']}", |
|
280 | - substr($commit['sha'], 0, 7), |
|
281 | - substr($commit['sha'], 0, 7), |
|
282 | - $messageShort |
|
283 | - ); |
|
284 | - } |
|
285 | - $messageLong .= "</ul>"; |
|
286 | - } |
|
287 | - |
|
288 | - $activityRepository->insertActivity( |
|
289 | - $message, |
|
290 | - $messageLong, |
|
291 | - (new DateTime($github['datetime'])), |
|
292 | - [], |
|
293 | - 'github', |
|
294 | - $github['id'] |
|
295 | - ); |
|
182 | + $uniqueGithubCheck = $activityRepository->getActivityByTypeId('github', $github['id']); |
|
183 | + if ($uniqueGithubCheck !== false) { |
|
184 | + continue; |
|
185 | + } |
|
186 | + |
|
187 | + $githubData = json_decode($github['metadata'], true); |
|
188 | + |
|
189 | + if ($github['type'] == 'CreateEvent') { |
|
190 | + if ( |
|
191 | + $githubData['payload']['ref_type'] == 'branch' || |
|
192 | + $githubData['payload']['ref_type'] == 'tag' |
|
193 | + ) { |
|
194 | + $message = sprintf( |
|
195 | + 'Created %s %s at %s.', |
|
196 | + $githubData['payload']['ref_type'], |
|
197 | + $githubData['payload']['ref'], |
|
198 | + $githubData['repo']['name'] |
|
199 | + ); |
|
200 | + $messageLong = sprintf( |
|
201 | + '<p>Created %s %s at <a href="%s" target="_blank" title="Github | %s">%s</a>.</p>', |
|
202 | + $githubData['payload']['ref_type'], |
|
203 | + $githubData['payload']['ref'], |
|
204 | + "https://github.com/{$githubData['repo']['name']}", |
|
205 | + $githubData['repo']['name'], |
|
206 | + $githubData['repo']['name'] |
|
207 | + ); |
|
208 | + } else if ($githubData['payload']['ref_type'] == 'repository') { |
|
209 | + $message = sprintf( |
|
210 | + 'Created %s %s.', |
|
211 | + $githubData['payload']['ref_type'], |
|
212 | + $githubData['repo']['name'] |
|
213 | + ); |
|
214 | + $messageLong = sprintf( |
|
215 | + '<p>Created %s <a href="%s" target="_blank" title="Github | %s">%s</a>.</p>', |
|
216 | + $githubData['payload']['ref_type'], |
|
217 | + "https://github.com/{$githubData['repo']['name']}", |
|
218 | + $githubData['repo']['name'], |
|
219 | + $githubData['repo']['name'] |
|
220 | + ); |
|
221 | + } else { |
|
222 | + continue; |
|
223 | + } |
|
224 | + } else if ($github['type'] == 'ForkEvent') { |
|
225 | + $message = sprintf( |
|
226 | + 'Forked %s to %s', |
|
227 | + $githubData['repo']['name'], |
|
228 | + $githubData['payload']['forkee']['full_name'] |
|
229 | + ); |
|
230 | + $messageLong = sprintf( |
|
231 | + '<p>Forked <a href="%s" target="_blank" title="Github | %s">%s</a> to <a href="%s" target="_blank" title="Github | %s">%s</a>.', |
|
232 | + "https://github.com/{$githubData['repo']['name']}", |
|
233 | + $githubData['repo']['name'], |
|
234 | + $githubData['repo']['name'], |
|
235 | + $githubData['payload']['forkee']['html_url'], |
|
236 | + $githubData['payload']['forkee']['full_name'], |
|
237 | + $githubData['payload']['forkee']['full_name'] |
|
238 | + ); |
|
239 | + } else if ($github['type'] == 'PullRequestEvent') { |
|
240 | + $message = sprintf( |
|
241 | + '%s a pull request at %s', |
|
242 | + ucwords($githubData['payload']['action']), |
|
243 | + $githubData['repo']['name'] |
|
244 | + ); |
|
245 | + $messageLong = sprintf( |
|
246 | + '<p>%s pull request <a href="%s" target="_blank" title="Github | %s PR %d">%d</a> at <a href="%s" target="_blank" title="Github | %s">%s</a>.</p>', |
|
247 | + ucwords($githubData['payload']['action']), |
|
248 | + $githubData['payload']['pull_request']['html_url'], |
|
249 | + $githubData['repo']['name'], |
|
250 | + $githubData['payload']['number'], |
|
251 | + $githubData['payload']['number'], |
|
252 | + "https://github.com/{$githubData['repo']['name']}", |
|
253 | + $githubData['repo']['name'], |
|
254 | + $githubData['repo']['name'] |
|
255 | + ); |
|
256 | + } else if ($github['type'] == 'PushEvent') { |
|
257 | + $message = sprintf( |
|
258 | + 'Pushed some code at %s.', |
|
259 | + $githubData['repo']['name'] |
|
260 | + ); |
|
261 | + $messageLong = sprintf( |
|
262 | + "<p>Pushed some code at <a href=\"%s\" target=\"_blank\" title=\"Github | %s\">%s</a>.</p>\n", |
|
263 | + $githubData['payload']['ref'], |
|
264 | + "https://github.com/{$githubData['repo']['name']}", |
|
265 | + $githubData['repo']['name'], |
|
266 | + $githubData['repo']['name'] |
|
267 | + ); |
|
268 | + $messageLong .= "<ul>\n"; |
|
269 | + foreach ($githubData['payload']['commits'] as $commit) { |
|
270 | + $messageShort = $commit['message']; |
|
271 | + $messageShort = strtok($messageShort, "\n"); |
|
272 | + if (strlen($messageShort) > 72) { |
|
273 | + $messageShort = wordwrap($messageShort, 65); |
|
274 | + $messageShort = strtok($messageShort, "\n"); |
|
275 | + $messageShort .= '...'; |
|
276 | + } |
|
277 | + $messageLong .= sprintf( |
|
278 | + "<li><a href=\"%s\" target=\"_blank\" title=\"Github | %s\">%s</a> %s.</li>\n", |
|
279 | + "https://github.com/{$githubData['repo']['name']}/commit/{$commit['sha']}", |
|
280 | + substr($commit['sha'], 0, 7), |
|
281 | + substr($commit['sha'], 0, 7), |
|
282 | + $messageShort |
|
283 | + ); |
|
284 | + } |
|
285 | + $messageLong .= "</ul>"; |
|
286 | + } |
|
287 | + |
|
288 | + $activityRepository->insertActivity( |
|
289 | + $message, |
|
290 | + $messageLong, |
|
291 | + (new DateTime($github['datetime'])), |
|
292 | + [], |
|
293 | + 'github', |
|
294 | + $github['id'] |
|
295 | + ); |
|
296 | 296 | } |
297 | 297 | |
298 | 298 | // books |
@@ -301,46 +301,46 @@ discard block |
||
301 | 301 | |
302 | 302 | $lastGoodreadActivity = $activityRepository->getActivityLastUpdateByType('book'); |
303 | 303 | if ($lastGoodreadActivity === false) { |
304 | - $lastGoodreadActivityDateTime = new DateTime('2010-08-28'); |
|
304 | + $lastGoodreadActivityDateTime = new DateTime('2010-08-28'); |
|
305 | 305 | } else { |
306 | - $lastGoodreadActivityDateTime = new DateTime($lastGoodreadActivity['updated_at']); |
|
307 | - $lastGoodreadActivityDateTime->modify('-5 days'); |
|
306 | + $lastGoodreadActivityDateTime = new DateTime($lastGoodreadActivity['updated_at']); |
|
307 | + $lastGoodreadActivityDateTime->modify('-5 days'); |
|
308 | 308 | } |
309 | 309 | $newGoodreadActivity = $goodreadRepository->getGoodreadsUpdatedSince($lastGoodreadActivityDateTime); |
310 | 310 | foreach ($newGoodreadActivity as $goodread) { |
311 | - $uniqueGoodreadCheck = $activityRepository->getActivityByTypeId('book', $goodread['id']); |
|
312 | - if ($uniqueGoodreadCheck !== false) { |
|
313 | - continue; |
|
314 | - } |
|
315 | - |
|
316 | - $goodreadData = json_decode($goodread['metadata'], true); |
|
317 | - |
|
318 | - if (empty($goodreadData['user_read_at'])) { |
|
319 | - continue; |
|
320 | - } |
|
321 | - |
|
322 | - $message = sprintf( |
|
323 | - 'Read %s by %s.', |
|
324 | - $goodreadData['title'], |
|
325 | - $goodreadData['author_name'] |
|
326 | - ); |
|
327 | - if (isset($goodreadData['book_large_image_url'])) { |
|
328 | - $messageLong = sprintf( |
|
329 | - "<img alt=\"Goodreads | %s\" src=\"%s\" />\n", |
|
330 | - $goodreadData['title'], |
|
331 | - $goodreadData['book_large_image_url'] |
|
332 | - ); |
|
333 | - } |
|
334 | - $messageLong .= "<p>{$message}</p>"; |
|
335 | - |
|
336 | - $activityRepository->insertActivity( |
|
337 | - $message, |
|
338 | - $messageLong, |
|
339 | - (new DateTime($goodread['datetime'])), |
|
340 | - [], |
|
341 | - 'book', |
|
342 | - $goodread['id'] |
|
343 | - ); |
|
311 | + $uniqueGoodreadCheck = $activityRepository->getActivityByTypeId('book', $goodread['id']); |
|
312 | + if ($uniqueGoodreadCheck !== false) { |
|
313 | + continue; |
|
314 | + } |
|
315 | + |
|
316 | + $goodreadData = json_decode($goodread['metadata'], true); |
|
317 | + |
|
318 | + if (empty($goodreadData['user_read_at'])) { |
|
319 | + continue; |
|
320 | + } |
|
321 | + |
|
322 | + $message = sprintf( |
|
323 | + 'Read %s by %s.', |
|
324 | + $goodreadData['title'], |
|
325 | + $goodreadData['author_name'] |
|
326 | + ); |
|
327 | + if (isset($goodreadData['book_large_image_url'])) { |
|
328 | + $messageLong = sprintf( |
|
329 | + "<img alt=\"Goodreads | %s\" src=\"%s\" />\n", |
|
330 | + $goodreadData['title'], |
|
331 | + $goodreadData['book_large_image_url'] |
|
332 | + ); |
|
333 | + } |
|
334 | + $messageLong .= "<p>{$message}</p>"; |
|
335 | + |
|
336 | + $activityRepository->insertActivity( |
|
337 | + $message, |
|
338 | + $messageLong, |
|
339 | + (new DateTime($goodread['datetime'])), |
|
340 | + [], |
|
341 | + 'book', |
|
342 | + $goodread['id'] |
|
343 | + ); |
|
344 | 344 | } |
345 | 345 | |
346 | 346 | |
@@ -349,136 +349,136 @@ discard block |
||
349 | 349 | |
350 | 350 | $lastTwitterActivity = $activityRepository->getActivityLastUpdateByType('twitter'); |
351 | 351 | if ($lastTwitterActivity === false) { |
352 | - $lastTwitterActivityDateTime = new DateTime('2010-03-10'); |
|
352 | + $lastTwitterActivityDateTime = new DateTime('2010-03-10'); |
|
353 | 353 | } else { |
354 | - $lastTwitterActivityDateTime = new DateTime($lastTwitterActivity['updated_at']); |
|
355 | - $lastTwitterActivityDateTime->modify('-5 days'); |
|
354 | + $lastTwitterActivityDateTime = new DateTime($lastTwitterActivity['updated_at']); |
|
355 | + $lastTwitterActivityDateTime->modify('-5 days'); |
|
356 | 356 | } |
357 | 357 | $newTwitterActivity = $twitterRepository->getTwittersUpdatedSince($lastTwitterActivityDateTime); |
358 | 358 | foreach ($newTwitterActivity as $twitter) { |
359 | - $twitterData = json_decode($twitter['metadata'], true); |
|
360 | - |
|
361 | - $uniqueTwitterCheck = $activityRepository->getActivityByTypeId('twitter', $twitter['id']); |
|
362 | - if ($uniqueTwitterCheck !== false) { |
|
363 | - $metadata = []; |
|
364 | - if ($twitterData['favorite_count'] > 0) { |
|
365 | - $metadata['favorites'] = $twitterData['favorite_count']; |
|
366 | - } |
|
367 | - if ($twitterData['retweet_count'] > 0) { |
|
368 | - $metadata['retweets'] = $twitterData['retweet_count']; |
|
369 | - } |
|
370 | - |
|
371 | - $activityRepository->updateActivityMetadata($uniqueTwitterCheck['id'], $metadata); |
|
372 | - continue; |
|
373 | - } |
|
374 | - |
|
375 | - if ( |
|
376 | - ($twitterData['in_reply_to_user_id'] != null || substr($twitterData['text'], 0, 1) === '@') && |
|
377 | - $twitterData['favorite_count'] == 0 && |
|
378 | - $twitterData['retweet_count'] == 0 |
|
379 | - ) { |
|
380 | - continue; |
|
381 | - } |
|
382 | - |
|
383 | - $entityHolder = []; |
|
384 | - foreach ($twitterData['entities'] as $entityType => $entities) { |
|
385 | - foreach ($entities as $entity) { |
|
386 | - if ($entityType == 'urls' || $entityType == 'media') { |
|
387 | - $entityHolder[$entity['indices'][0]] = [ |
|
388 | - 'start' => $entity['indices'][0], |
|
389 | - 'end' => $entity['indices'][1], |
|
390 | - 'replace' => "[{$entity['display_url']}]" |
|
391 | - ]; |
|
392 | - } |
|
393 | - } |
|
394 | - } |
|
395 | - |
|
396 | - $message = $twitterData['text']; |
|
397 | - krsort($entityHolder); |
|
398 | - foreach($entityHolder as $entity) |
|
399 | - { |
|
400 | - $message = |
|
401 | - mb_substr($message, 0, $entity['start']) . |
|
402 | - $entity['replace'] . |
|
403 | - mb_substr($message, $entity['end'], null, 'UTF-8'); |
|
404 | - } |
|
405 | - $message = mb_convert_encoding($message, 'HTML-ENTITIES', 'UTF-8'); |
|
406 | - $message = trim(preg_replace('/\s+/', ' ', $message)); |
|
407 | - $message = "Tweeted | {$message}"; |
|
408 | - |
|
409 | - $entityHolder = []; |
|
410 | - foreach ($twitterData['entities'] as $entityType => $entities) { |
|
411 | - foreach ($entities as $entity) { |
|
412 | - if ($entityType == 'hashtags') { |
|
413 | - $replace = sprintf( |
|
414 | - '<a href="https://twitter.com/search?q=%%23%s&src=hash" rel="nofollow" target="_blank">#%s</a>', |
|
415 | - $entity['text'], |
|
416 | - $entity['text'] |
|
417 | - ); |
|
418 | - } else if ($entityType == 'urls') { |
|
419 | - $replace = sprintf( |
|
420 | - '<a href="%s" rel="nofollow" target="_blank" title="%s">%s</a>', |
|
421 | - $entity['url'], |
|
422 | - $entity['expanded_url'], |
|
423 | - $entity['display_url'] |
|
424 | - ); |
|
425 | - } else if ($entityType == 'user_mentions') { |
|
426 | - $replace = sprintf( |
|
427 | - '<a href="https://twitter.com/%s" rel="nofollow" target="_blank" title="Twitter | %s">@%s</a>', |
|
428 | - strtolower($entity['screen_name']), |
|
429 | - $entity['name'], |
|
430 | - $entity['screen_name'] |
|
431 | - ); |
|
432 | - } else if ($entityType == 'media') { |
|
433 | - $replace = sprintf( |
|
434 | - "<img src=\"%s:%s\" alt=\"%s\" height=\"%s\" width=\"%s\" />", |
|
435 | - $entity['media_url'], |
|
436 | - 'large', |
|
437 | - $entity['display_url'], |
|
438 | - $entity['sizes']['large']['h'], |
|
439 | - $entity['sizes']['large']['w'] |
|
440 | - ); |
|
441 | - } else { |
|
442 | - continue 2; |
|
443 | - } |
|
444 | - |
|
445 | - $entityHolder[$entity['indices'][0]] = [ |
|
446 | - 'start' => $entity['indices'][0], |
|
447 | - 'end' => $entity['indices'][1], |
|
448 | - 'replace' => $replace, |
|
449 | - ]; |
|
450 | - } |
|
451 | - } |
|
452 | - |
|
453 | - $messageLong = $twitterData['text']; |
|
454 | - krsort($entityHolder); |
|
455 | - foreach($entityHolder as $entity) |
|
456 | - { |
|
457 | - $messageLong = |
|
458 | - mb_substr($messageLong, 0, $entity['start']) . |
|
459 | - $entity['replace'] . |
|
460 | - mb_substr($messageLong, $entity['end'], null, 'UTF-8'); |
|
461 | - } |
|
462 | - $messageLong = mb_convert_encoding($messageLong, 'HTML-ENTITIES', 'UTF-8'); |
|
463 | - $messageLong = nl2br($messageLong, true); |
|
464 | - $messageLong = "<p>{$messageLong}</p>"; |
|
465 | - |
|
466 | - $metadata = []; |
|
467 | - if ($twitterData['favorite_count'] > 0) { |
|
468 | - $metadata['favorites'] = $twitterData['favorite_count']; |
|
469 | - } |
|
470 | - if ($twitterData['retweet_count'] > 0) { |
|
471 | - $metadata['retweets'] = $twitterData['retweet_count']; |
|
472 | - } |
|
473 | - |
|
474 | - $activityRepository->insertActivity( |
|
475 | - $message, |
|
476 | - $messageLong, |
|
477 | - (new DateTime($twitter['datetime'])), |
|
478 | - $metadata, |
|
479 | - 'twitter', |
|
480 | - $twitter['id'] |
|
481 | - ); |
|
359 | + $twitterData = json_decode($twitter['metadata'], true); |
|
360 | + |
|
361 | + $uniqueTwitterCheck = $activityRepository->getActivityByTypeId('twitter', $twitter['id']); |
|
362 | + if ($uniqueTwitterCheck !== false) { |
|
363 | + $metadata = []; |
|
364 | + if ($twitterData['favorite_count'] > 0) { |
|
365 | + $metadata['favorites'] = $twitterData['favorite_count']; |
|
366 | + } |
|
367 | + if ($twitterData['retweet_count'] > 0) { |
|
368 | + $metadata['retweets'] = $twitterData['retweet_count']; |
|
369 | + } |
|
370 | + |
|
371 | + $activityRepository->updateActivityMetadata($uniqueTwitterCheck['id'], $metadata); |
|
372 | + continue; |
|
373 | + } |
|
374 | + |
|
375 | + if ( |
|
376 | + ($twitterData['in_reply_to_user_id'] != null || substr($twitterData['text'], 0, 1) === '@') && |
|
377 | + $twitterData['favorite_count'] == 0 && |
|
378 | + $twitterData['retweet_count'] == 0 |
|
379 | + ) { |
|
380 | + continue; |
|
381 | + } |
|
382 | + |
|
383 | + $entityHolder = []; |
|
384 | + foreach ($twitterData['entities'] as $entityType => $entities) { |
|
385 | + foreach ($entities as $entity) { |
|
386 | + if ($entityType == 'urls' || $entityType == 'media') { |
|
387 | + $entityHolder[$entity['indices'][0]] = [ |
|
388 | + 'start' => $entity['indices'][0], |
|
389 | + 'end' => $entity['indices'][1], |
|
390 | + 'replace' => "[{$entity['display_url']}]" |
|
391 | + ]; |
|
392 | + } |
|
393 | + } |
|
394 | + } |
|
395 | + |
|
396 | + $message = $twitterData['text']; |
|
397 | + krsort($entityHolder); |
|
398 | + foreach($entityHolder as $entity) |
|
399 | + { |
|
400 | + $message = |
|
401 | + mb_substr($message, 0, $entity['start']) . |
|
402 | + $entity['replace'] . |
|
403 | + mb_substr($message, $entity['end'], null, 'UTF-8'); |
|
404 | + } |
|
405 | + $message = mb_convert_encoding($message, 'HTML-ENTITIES', 'UTF-8'); |
|
406 | + $message = trim(preg_replace('/\s+/', ' ', $message)); |
|
407 | + $message = "Tweeted | {$message}"; |
|
408 | + |
|
409 | + $entityHolder = []; |
|
410 | + foreach ($twitterData['entities'] as $entityType => $entities) { |
|
411 | + foreach ($entities as $entity) { |
|
412 | + if ($entityType == 'hashtags') { |
|
413 | + $replace = sprintf( |
|
414 | + '<a href="https://twitter.com/search?q=%%23%s&src=hash" rel="nofollow" target="_blank">#%s</a>', |
|
415 | + $entity['text'], |
|
416 | + $entity['text'] |
|
417 | + ); |
|
418 | + } else if ($entityType == 'urls') { |
|
419 | + $replace = sprintf( |
|
420 | + '<a href="%s" rel="nofollow" target="_blank" title="%s">%s</a>', |
|
421 | + $entity['url'], |
|
422 | + $entity['expanded_url'], |
|
423 | + $entity['display_url'] |
|
424 | + ); |
|
425 | + } else if ($entityType == 'user_mentions') { |
|
426 | + $replace = sprintf( |
|
427 | + '<a href="https://twitter.com/%s" rel="nofollow" target="_blank" title="Twitter | %s">@%s</a>', |
|
428 | + strtolower($entity['screen_name']), |
|
429 | + $entity['name'], |
|
430 | + $entity['screen_name'] |
|
431 | + ); |
|
432 | + } else if ($entityType == 'media') { |
|
433 | + $replace = sprintf( |
|
434 | + "<img src=\"%s:%s\" alt=\"%s\" height=\"%s\" width=\"%s\" />", |
|
435 | + $entity['media_url'], |
|
436 | + 'large', |
|
437 | + $entity['display_url'], |
|
438 | + $entity['sizes']['large']['h'], |
|
439 | + $entity['sizes']['large']['w'] |
|
440 | + ); |
|
441 | + } else { |
|
442 | + continue 2; |
|
443 | + } |
|
444 | + |
|
445 | + $entityHolder[$entity['indices'][0]] = [ |
|
446 | + 'start' => $entity['indices'][0], |
|
447 | + 'end' => $entity['indices'][1], |
|
448 | + 'replace' => $replace, |
|
449 | + ]; |
|
450 | + } |
|
451 | + } |
|
452 | + |
|
453 | + $messageLong = $twitterData['text']; |
|
454 | + krsort($entityHolder); |
|
455 | + foreach($entityHolder as $entity) |
|
456 | + { |
|
457 | + $messageLong = |
|
458 | + mb_substr($messageLong, 0, $entity['start']) . |
|
459 | + $entity['replace'] . |
|
460 | + mb_substr($messageLong, $entity['end'], null, 'UTF-8'); |
|
461 | + } |
|
462 | + $messageLong = mb_convert_encoding($messageLong, 'HTML-ENTITIES', 'UTF-8'); |
|
463 | + $messageLong = nl2br($messageLong, true); |
|
464 | + $messageLong = "<p>{$messageLong}</p>"; |
|
465 | + |
|
466 | + $metadata = []; |
|
467 | + if ($twitterData['favorite_count'] > 0) { |
|
468 | + $metadata['favorites'] = $twitterData['favorite_count']; |
|
469 | + } |
|
470 | + if ($twitterData['retweet_count'] > 0) { |
|
471 | + $metadata['retweets'] = $twitterData['retweet_count']; |
|
472 | + } |
|
473 | + |
|
474 | + $activityRepository->insertActivity( |
|
475 | + $message, |
|
476 | + $messageLong, |
|
477 | + (new DateTime($twitter['datetime'])), |
|
478 | + $metadata, |
|
479 | + 'twitter', |
|
480 | + $twitter['id'] |
|
481 | + ); |
|
482 | 482 | } |
483 | 483 | |
484 | 484 | // youtube |
@@ -487,39 +487,39 @@ discard block |
||
487 | 487 | |
488 | 488 | $lastYouTubeActivity = $activityRepository->getActivityLastUpdateByType('youtube'); |
489 | 489 | if ($lastYouTubeActivity === false) { |
490 | - $lastYouTubeActivityDateTime = new DateTime('2010-08-28'); |
|
490 | + $lastYouTubeActivityDateTime = new DateTime('2010-08-28'); |
|
491 | 491 | } else { |
492 | - $lastYouTubeActivityDateTime = new DateTime($lastYouTubeActivity['updated_at']); |
|
493 | - $lastYouTubeActivityDateTime->modify('-5 days'); |
|
492 | + $lastYouTubeActivityDateTime = new DateTime($lastYouTubeActivity['updated_at']); |
|
493 | + $lastYouTubeActivityDateTime->modify('-5 days'); |
|
494 | 494 | } |
495 | 495 | $newYouTubeActivity = $youTubeRepository->getYouTubesUpdatedSince($lastYouTubeActivityDateTime); |
496 | 496 | foreach ($newYouTubeActivity as $youTube) { |
497 | - $uniqueYouTubeCheck = $activityRepository->getActivityByTypeId('youtube', $youTube['id']); |
|
498 | - if ($uniqueYouTubeCheck !== false) { |
|
499 | - continue; |
|
500 | - } |
|
501 | - |
|
502 | - $youTubeData = json_decode($youTube['metadata'], true); |
|
503 | - |
|
504 | - $message = sprintf( |
|
505 | - 'Favorited %s on YouTube.', |
|
506 | - $youTubeData['snippet']['title'] |
|
507 | - ); |
|
508 | - $messageLong = sprintf( |
|
509 | - "<iframe src=\"%s\" frameborder=\"0\" allowfullscreen></iframe>\n" . |
|
510 | - "<p>Favorited <a href=\"%s\" target=\"_blank\" title=\"YouTube | %s\">%s</a> on YouTube.</p>", |
|
511 | - "https://www.youtube.com/embed/{$youTubeData['contentDetails']['videoId']}", |
|
512 | - "https://youtu.be/{$youTubeData['contentDetails']['videoId']}", |
|
513 | - $youTubeData['snippet']['title'], |
|
514 | - $youTubeData['snippet']['title'] |
|
515 | - ); |
|
516 | - |
|
517 | - $activityRepository->insertActivity( |
|
518 | - $message, |
|
519 | - $messageLong, |
|
520 | - (new DateTime($youTube['datetime'])), |
|
521 | - [], |
|
522 | - 'youtube', |
|
523 | - $youTube['id'] |
|
524 | - ); |
|
497 | + $uniqueYouTubeCheck = $activityRepository->getActivityByTypeId('youtube', $youTube['id']); |
|
498 | + if ($uniqueYouTubeCheck !== false) { |
|
499 | + continue; |
|
500 | + } |
|
501 | + |
|
502 | + $youTubeData = json_decode($youTube['metadata'], true); |
|
503 | + |
|
504 | + $message = sprintf( |
|
505 | + 'Favorited %s on YouTube.', |
|
506 | + $youTubeData['snippet']['title'] |
|
507 | + ); |
|
508 | + $messageLong = sprintf( |
|
509 | + "<iframe src=\"%s\" frameborder=\"0\" allowfullscreen></iframe>\n" . |
|
510 | + "<p>Favorited <a href=\"%s\" target=\"_blank\" title=\"YouTube | %s\">%s</a> on YouTube.</p>", |
|
511 | + "https://www.youtube.com/embed/{$youTubeData['contentDetails']['videoId']}", |
|
512 | + "https://youtu.be/{$youTubeData['contentDetails']['videoId']}", |
|
513 | + $youTubeData['snippet']['title'], |
|
514 | + $youTubeData['snippet']['title'] |
|
515 | + ); |
|
516 | + |
|
517 | + $activityRepository->insertActivity( |
|
518 | + $message, |
|
519 | + $messageLong, |
|
520 | + (new DateTime($youTube['datetime'])), |
|
521 | + [], |
|
522 | + 'youtube', |
|
523 | + $youTube['id'] |
|
524 | + ); |
|
525 | 525 | } |
@@ -6,40 +6,40 @@ |
||
6 | 6 | use Jacobemerick\Web\Domain\Stream\Twitter\MysqlTwitterRepository as TwitterRepository; |
7 | 7 | |
8 | 8 | $client = new TwitterOAuth( |
9 | - $config->twitter->consumer_key, |
|
10 | - $config->twitter->consumer_secret, |
|
11 | - $config->twitter->access_token, |
|
12 | - $config->twitter->access_token_secret |
|
9 | + $config->twitter->consumer_key, |
|
10 | + $config->twitter->consumer_secret, |
|
11 | + $config->twitter->access_token, |
|
12 | + $config->twitter->access_token_secret |
|
13 | 13 | ); |
14 | 14 | $client->setDecodeJsonAsArray(true); |
15 | 15 | |
16 | 16 | $twitterRepository = new TwitterRepository($container['db_connection_locator']); |
17 | 17 | |
18 | 18 | $recentTweets = $client->get('statuses/user_timeline', [ |
19 | - 'screen_name' => 'jpemeric', |
|
20 | - 'count' => 50, |
|
21 | - 'trim_user' => true, |
|
19 | + 'screen_name' => 'jpemeric', |
|
20 | + 'count' => 50, |
|
21 | + 'trim_user' => true, |
|
22 | 22 | ]); |
23 | 23 | |
24 | 24 | if (isset($recentTweets['errors'])) { |
25 | - throw new Exception("Error encountered with twitter api {$recentTweets['errors'][0]['message']}"); |
|
25 | + throw new Exception("Error encountered with twitter api {$recentTweets['errors'][0]['message']}"); |
|
26 | 26 | } |
27 | 27 | |
28 | 28 | foreach ($recentTweets as $tweet) { |
29 | - $uniqueTweetCheck = $twitterRepository->getTwitterByTweetId($tweet['id_str']); |
|
30 | - if ($uniqueTweetCheck !== false) { |
|
31 | - $currentTweetHash = md5($uniqueTweetCheck['metadata']); |
|
32 | - $newTweetHash = md5(json_encode($tweet)); |
|
33 | - if ($uniqueTweetCheck['metadata'] != json_encode($tweet)) { |
|
34 | - $twitterRepository->updateTweetMetadata($tweet['id_str'], $tweet); |
|
35 | - } |
|
36 | - continue; |
|
37 | - } |
|
38 | - |
|
39 | - $twitterRepository->insertTweet( |
|
40 | - $tweet['id_str'], |
|
41 | - (new DateTime($tweet['created_at']))->setTimezone($container['default_timezone']), |
|
42 | - $tweet |
|
43 | - ); |
|
29 | + $uniqueTweetCheck = $twitterRepository->getTwitterByTweetId($tweet['id_str']); |
|
30 | + if ($uniqueTweetCheck !== false) { |
|
31 | + $currentTweetHash = md5($uniqueTweetCheck['metadata']); |
|
32 | + $newTweetHash = md5(json_encode($tweet)); |
|
33 | + if ($uniqueTweetCheck['metadata'] != json_encode($tweet)) { |
|
34 | + $twitterRepository->updateTweetMetadata($tweet['id_str'], $tweet); |
|
35 | + } |
|
36 | + continue; |
|
37 | + } |
|
38 | + |
|
39 | + $twitterRepository->insertTweet( |
|
40 | + $tweet['id_str'], |
|
41 | + (new DateTime($tweet['created_at']))->setTimezone($container['default_timezone']), |
|
42 | + $tweet |
|
43 | + ); |
|
44 | 44 | } |
45 | 45 |