Passed
Push — master ( a8decd...3a3f23 )
by litefeel
02:30
created
views/textarea-setting-field.php 1 patch
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -5,8 +5,8 @@
 block discarded – undo
5 5
  */
6 6
 
7 7
 ?>
8
-<?php $value = get_option( $args['name'], $args['default'] ); ?>
9
-<textarea name="<?php echo esc_attr( $args['name'] ); ?>" id="<?php echo esc_attr( $args['name'] ); ?>" rows="10" cols="40">
10
-<?php echo esc_attr( $value ); ?>
8
+<?php $value = get_option($args['name'], $args['default']); ?>
9
+<textarea name="<?php echo esc_attr($args['name']); ?>" id="<?php echo esc_attr($args['name']); ?>" rows="10" cols="40">
10
+<?php echo esc_attr($value); ?>
11 11
 </textarea>
12 12
 <p class="description"><?php echo $args['help_text']; ?></p>
Please login to merge, or discard this patch.
views/options.php 1 patch
Spacing   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -6,27 +6,27 @@
 block discarded – undo
6 6
 
7 7
 ?>
8 8
 <div class="wrap">
9
-	<h2><?php esc_html_e( 'Writing On GitHub', 'writing-on-github' ); ?></h2>
9
+	<h2><?php esc_html_e('Writing On GitHub', 'writing-on-github'); ?></h2>
10 10
 
11 11
 	<form method="post" action="options.php">
12
-		<?php settings_fields( Writing_On_GitHub::$text_domain ); ?>
13
-		<?php do_settings_sections( Writing_On_GitHub::$text_domain ); ?>
12
+		<?php settings_fields(Writing_On_GitHub::$text_domain); ?>
13
+		<?php do_settings_sections(Writing_On_GitHub::$text_domain); ?>
14 14
 		<table class="form-table">
15 15
 			<tr>
16
-				<th scope="row"><?php esc_html_e( 'Webhook callback', 'writing-on-github' ); ?></th>
17
-				<td><code><?php echo esc_url( admin_url( 'admin-ajax.php' ) ); ?>?action=wogh_push_request</code></td>
16
+				<th scope="row"><?php esc_html_e('Webhook callback', 'writing-on-github'); ?></th>
17
+				<td><code><?php echo esc_url(admin_url('admin-ajax.php')); ?>?action=wogh_push_request</code></td>
18 18
 			</tr>
19 19
 			<tr>
20
-				<th scope="row"><?php esc_html_e( 'Bulk actions', 'writing-on-github' ); ?></th>
20
+				<th scope="row"><?php esc_html_e('Bulk actions', 'writing-on-github'); ?></th>
21 21
 				<td>
22
-					<a href="<?php echo esc_url( add_query_arg( array( 'action' => 'export' ) ) ); ?>">
23
-						<?php esc_html_e( 'Export to GitHub', 'writing-on-github' ); ?>
22
+					<a href="<?php echo esc_url(add_query_arg(array('action' => 'export'))); ?>">
23
+						<?php esc_html_e('Export to GitHub', 'writing-on-github'); ?>
24 24
 					</a> |
25
-                    <a href="<?php echo esc_url( add_query_arg( array( 'action' => 'force_export' ) ) ); ?>">
26
-                        <?php esc_html_e( 'Force export to GitHub', 'writing-on-github' ); ?>
25
+                    <a href="<?php echo esc_url(add_query_arg(array('action' => 'force_export'))); ?>">
26
+                        <?php esc_html_e('Force export to GitHub', 'writing-on-github'); ?>
27 27
                     </a> |
28
-					<a href="<?php echo esc_url( add_query_arg( array( 'action' => 'import' ) ) ); ?>">
29
-						<?php esc_html_e( 'Import from GitHub', 'writing-on-github' ); ?>
28
+					<a href="<?php echo esc_url(add_query_arg(array('action' => 'import'))); ?>">
29
+						<?php esc_html_e('Import from GitHub', 'writing-on-github'); ?>
30 30
 					</a>
31 31
 				</td>
32 32
 		</table>
Please login to merge, or discard this patch.
views/user-setting-field.php 1 patch
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -1,8 +1,8 @@
 block discarded – undo
1
-<?php $value = get_option( $args['name'], $args['default'] ); ?>
2
-<select name="<?php echo esc_attr( $args['name'] ) ?>" id="<?php echo esc_attr( $args['name'] ) ?>">
3
-	<?php foreach ( get_users() as $user ) : ?>
4
-		<option value="<?php echo esc_attr( $user->ID ); ?>"<?php echo (int) $value === $user->ID ? ' selected' : '';?>>
5
-			<?php echo esc_html( $user->display_name ); ?>
1
+<?php $value = get_option($args['name'], $args['default']); ?>
2
+<select name="<?php echo esc_attr($args['name']) ?>" id="<?php echo esc_attr($args['name']) ?>">
3
+	<?php foreach (get_users() as $user) : ?>
4
+		<option value="<?php echo esc_attr($user->ID); ?>"<?php echo (int) $value === $user->ID ? ' selected' : ''; ?>>
5
+			<?php echo esc_html($user->display_name); ?>
6 6
 		</option>
7 7
 	<?php endforeach; ?>
8 8
 </select>
Please login to merge, or discard this patch.
views/checkbox-setting-field.php 1 patch
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -5,6 +5,6 @@
 block discarded – undo
5 5
  */
6 6
 
7 7
 ?>
8
-<?php $value = get_option( $args['name'], $args['default'] ); ?>
9
-<input type="checkbox" name="<?php echo esc_attr( $args['name'] ); ?>" id="<?php echo esc_attr( $args['name'] ); ?>" value="yes" <?php echo 'yes' === $value ? 'checked' : '';  ?> />
8
+<?php $value = get_option($args['name'], $args['default']); ?>
9
+<input type="checkbox" name="<?php echo esc_attr($args['name']); ?>" id="<?php echo esc_attr($args['name']); ?>" value="yes" <?php echo 'yes' === $value ? 'checked' : ''; ?> />
10 10
 <p class="description"><?php echo $args['help_text']; ?></p>
Please login to merge, or discard this patch.
views/setting-field.php 1 patch
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -5,6 +5,6 @@
 block discarded – undo
5 5
  */
6 6
 
7 7
 ?>
8
-<?php $value = get_option( $args['name'], $args['default'] ); ?>
9
-<input name="<?php echo esc_attr( $args['name'] ); ?>" id="<?php echo esc_attr( $args['name'] ); ?>" type="<?php echo 'wogh_secret' === $args['name'] ? 'password' : 'text'; ?>" value="<?php echo esc_attr( $value ); ?>" />
8
+<?php $value = get_option($args['name'], $args['default']); ?>
9
+<input name="<?php echo esc_attr($args['name']); ?>" id="<?php echo esc_attr($args['name']); ?>" type="<?php echo 'wogh_secret' === $args['name'] ? 'password' : 'text'; ?>" value="<?php echo esc_attr($value); ?>" />
10 10
 <p class="description"><?php echo $args['help_text']; ?></p>
Please login to merge, or discard this patch.
lib/function.php 2 patches
Indentation   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -8,8 +8,8 @@
 block discarded – undo
8 8
  * @return WP_Error
9 9
  */
10 10
 function wogh_append_error( $error, $error2 ) {
11
-    if ( is_wp_error( $error ) ) {
12
-        $error->add( $error2->get_error_code(), $error2->get_error_message() );
13
-    }
14
-    return $error2;
11
+	if ( is_wp_error( $error ) ) {
12
+		$error->add( $error2->get_error_code(), $error2->get_error_message() );
13
+	}
14
+	return $error2;
15 15
 }
Please login to merge, or discard this patch.
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -7,9 +7,9 @@
 block discarded – undo
7 7
  * @param  WP_Error   $error2
8 8
  * @return WP_Error
9 9
  */
10
-function wogh_append_error( $error, $error2 ) {
11
-    if ( is_wp_error( $error ) ) {
12
-        $error->add( $error2->get_error_code(), $error2->get_error_message() );
10
+function wogh_append_error($error, $error2) {
11
+    if (is_wp_error($error)) {
12
+        $error->add($error2->get_error_code(), $error2->get_error_message());
13 13
     }
14 14
     return $error2;
15 15
 }
Please login to merge, or discard this patch.
lib/post.php 2 patches
Indentation   +448 added lines, -448 removed lines patch added patch discarded remove patch
@@ -9,452 +9,452 @@
 block discarded – undo
9 9
  */
10 10
 class Writing_On_GitHub_Post {
11 11
 
12
-    /**
13
-     * Api object
14
-     *
15
-     * @var Writing_On_GitHub_Api
16
-     */
17
-    public $api;
18
-
19
-    /**
20
-     * Post ID
21
-     * @var integer
22
-     */
23
-    public $id = 0;
24
-
25
-    /**
26
-     * Post object
27
-     * @var WP_Post
28
-     */
29
-    public $post;
30
-
31
-    /**
32
-     * Post args.
33
-     *
34
-     * @var array
35
-     */
36
-    protected $args;
37
-
38
-    /**
39
-     * Post meta.
40
-     *
41
-     * @var array
42
-     */
43
-    protected $meta;
44
-
45
-    /**
46
-     * Whether the post has been saved.
47
-     *
48
-     * @var bool
49
-     */
50
-    protected $new = true;
51
-
52
-
53
-    protected $old_github_path;
54
-
55
-    /**
56
-     * Instantiates a new Post object
57
-     *
58
-     * @param int|array                 $id_or_args Either a post ID or an array of arguments.
59
-     * @param Writing_On_GitHub_Api $api API object.
60
-     *
61
-     * @todo remove database operations from this method
62
-     */
63
-    public function __construct( $id_or_args, Writing_On_GitHub_Api $api ) {
64
-        $this->api = $api;
65
-
66
-        if ( is_numeric( $id_or_args ) ) {
67
-            $this->id   = (int) $id_or_args;
68
-            $this->post = get_post( $this->id );
69
-            $this->new  = false;
70
-        }
71
-
72
-        if ( is_array( $id_or_args ) ) {
73
-            $this->args = $id_or_args;
74
-
75
-            if ( isset( $this->args['ID'] ) ) {
76
-                $this->post = get_post( $this->args['ID'] );
77
-
78
-                if ( $this->post ) {
79
-                    $this->id  = $this->post->ID;
80
-                    $this->new = false;
81
-                } else {
82
-                    unset( $this->args['ID'] );
83
-                }
84
-            }
85
-        }
86
-    }
87
-
88
-    public function id() {
89
-        return $this->id;
90
-    }
91
-
92
-    /**
93
-     * Returns the post type
94
-     */
95
-    public function type() {
96
-        return $this->post->post_type;
97
-    }
98
-
99
-    /**
100
-     * Returns the post type
101
-     */
102
-    public function status() {
103
-        return $this->post->post_status;
104
-    }
105
-
106
-    /**
107
-     * Returns the post name
108
-     */
109
-    public function name() {
110
-        return $this->post->post_name;
111
-    }
112
-
113
-    /**
114
-     * Returns true if the post has a password
115
-     * @return bool
116
-     */
117
-    public function has_password() {
118
-        return ! empty( $this->post->post_password );
119
-    }
120
-
121
-    /**
122
-     * Combines the 2 content parts for GitHub
123
-     */
124
-    public function github_content() {
125
-        $content = $this->front_matter() . $this->post_content();
126
-        $ending  = apply_filters( 'wogh_line_endings', "\n" );
127
-
128
-        return preg_replace( '~(*BSR_ANYCRLF)\R~', $ending, $content );
129
-    }
130
-
131
-    /**
132
-     * The post's YAML frontmatter
133
-     *
134
-     * Returns String the YAML frontmatter, ready to be written to the file
135
-     */
136
-    public function front_matter() {
137
-        return "---\n" . spyc_dump( $this->meta() ) . "---\n";
138
-    }
139
-
140
-    /**
141
-     * Returns the post_content
142
-     *
143
-     * Markdownify's the content if applicable
144
-     */
145
-    public function post_content() {
146
-        $content = $this->post->post_content;
147
-
148
-        if ( function_exists( 'wpmarkdown_html_to_markdown' ) ) {
149
-            $content = wpmarkdown_html_to_markdown( $content );
150
-        } else if ( class_exists( 'WPCom_Markdown' ) ) {
151
-            if ( WPCom_Markdown::get_instance()->is_markdown( $this->post->ID ) ) {
152
-                $content = $this->post->post_content_filtered;
153
-            }
154
-        }
155
-
156
-        return apply_filters( 'wogh_content_export', $content, $this );
157
-    }
158
-
159
-    public function old_github_path() {
160
-        return $this->old_github_path;
161
-    }
162
-
163
-    public function set_old_github_path( $path ) {
164
-        $this->old_github_path = $path;
165
-        update_post_meta( $this->id, '_wogh_github_path', $path );
166
-    }
167
-
168
-
169
-    /**
170
-     * Retrieves or calculates the proper GitHub path for a given post
171
-     *
172
-     * Returns (string) the path relative to repo root
173
-     */
174
-    public function github_path() {
175
-        $path = $this->github_directory() . $this->github_filename();
176
-
177
-        return $path;
178
-    }
179
-
180
-    /**
181
-     * Get GitHub directory based on post
182
-     *
183
-     * @return string
184
-     */
185
-    public function github_directory() {
186
-        if ( 'publish' !== $this->status() ) {
187
-            return apply_filters( 'wogh_directory_unpublished', '_drafts/', $this );
188
-        }
189
-
190
-        $name = '';
191
-
192
-        switch ( $this->type() ) {
193
-            case 'post':
194
-                $name = 'posts';
195
-                break;
196
-            case 'page':
197
-                $name = 'pages';
198
-                break;
199
-            default:
200
-                $obj = get_post_type_object( $this->type() );
201
-
202
-                if ( $obj ) {
203
-                    $name = strtolower( $obj->labels->name );
204
-                }
205
-
206
-                if ( ! $name ) {
207
-                    $name = '';
208
-                }
209
-        }
210
-
211
-        if ( $name ) {
212
-            $name = '_' . $name . '/';
213
-        }
214
-
215
-        return apply_filters( 'wogh_directory_published', $name, $this );
216
-    }
217
-
218
-    /**
219
-     * Build GitHub filename based on post
220
-     */
221
-    public function github_filename() {
222
-        if ( 'post' === $this->type() ) {
223
-            $filename = get_the_time( 'Y-m-d-', $this->id ) . $this->get_name() . '.md';
224
-        } else {
225
-            $filename = $this->get_name() . '.md';
226
-        }
227
-
228
-        return apply_filters( 'wogh_filename', $filename, $this );
229
-    }
230
-
231
-    /**
232
-     * Returns a post slug we can use in the GitHub filename
233
-     *
234
-     * @return string
235
-     */
236
-    protected function get_name() {
237
-        if ( '' !== $this->name() ) {
238
-            return $this->name();
239
-        }
240
-
241
-        return sanitize_title( get_the_title( $this->post ) );
242
-    }
243
-
244
-    /**
245
-     * is put on github
246
-     * @return boolean
247
-     */
248
-    public function is_on_github() {
249
-        $sha = get_post_meta( $this->id, '_wogh_sha', true );
250
-        $github_path = get_post_meta( $this->id, '_wogh_github_path', true );
251
-        if ( $sha && $github_path ) {
252
-            return true;
253
-        }
254
-        return false;
255
-    }
256
-
257
-    /**
258
-     * Returns the URL for the post on GitHub.
259
-     *
260
-     * @return string
261
-     */
262
-    public function github_view_url() {
263
-        $github_path = get_post_meta( $this->id, '_wogh_github_path', true );
264
-        $repository = $this->api->fetch()->repository();
265
-        $branch = $this->api->fetch()->branch();
266
-
267
-        return "https://github.com/$repository/blob/$branch/$github_path";
268
-    }
269
-
270
-    /**
271
-     * Returns the URL for the post on GitHub.
272
-     *
273
-     * @return string
274
-     */
275
-    public function github_edit_url() {
276
-        $github_path = get_post_meta( $this->id, '_wogh_github_path', true );
277
-        $repository = $this->api->fetch()->repository();
278
-        $branch = $this->api->fetch()->branch();
279
-
280
-        return "https://github.com/$repository/edit/$branch/$github_path";
281
-    }
282
-
283
-    /**
284
-     * Retrieve post type directory from blob path.
285
-     *
286
-     * @param string $path Path string.
287
-     *
288
-     * @return string
289
-     */
290
-    public function get_directory_from_path( $path ) {
291
-        $directory = explode( '/', $path );
292
-        $directory = count( $directory ) > 0 ? $directory[0] : '';
293
-
294
-        return $directory;
295
-    }
296
-
297
-    /**
298
-     * Determines the last author to modify the post
299
-     *
300
-     * Returns Array an array containing the author name and email
301
-     */
302
-    public function last_modified_author() {
303
-        if ( $last_id = get_post_meta( $this->id, '_edit_last', true ) ) {
304
-            $user = get_userdata( $last_id );
305
-
306
-            if ( $user ) {
307
-                return array( 'name' => $user->display_name, 'email' => $user->user_email );
308
-            }
309
-        }
310
-
311
-        return array();
312
-    }
313
-
314
-    /**
315
-     * The post's sha
316
-     * Cached as post meta, or will make a live call if need be
317
-     *
318
-     * Returns String the sha1 hash
319
-     */
320
-    public function sha() {
321
-        $sha = get_post_meta( $this->id, '_wogh_sha', true );
322
-
323
-        // If we've done a full export and we have no sha
324
-        // then we should try a live check to see if it exists.
325
-        // if ( ! $sha && 'yes' === get_option( '_wogh_fully_exported' ) ) {
326
-
327
-        //  // @todo could we eliminate this by calling down the full tree and searching it
328
-        //  $data = $this->api->fetch()->remote_contents( $this );
329
-
330
-        //  if ( ! is_wp_error( $data ) ) {
331
-        //      update_post_meta( $this->id, '_wogh_sha', $data->sha );
332
-        //      $sha = $data->sha;
333
-        //  }
334
-        // }
335
-
336
-        // if the sha still doesn't exist, then it's empty
337
-        if ( ! $sha || is_wp_error( $sha ) ) {
338
-            $sha = '';
339
-        }
340
-
341
-        return $sha;
342
-    }
343
-
344
-    /**
345
-     * Save the sha to post
346
-     *
347
-     * @param string $sha
348
-     */
349
-    public function set_sha( $sha ) {
350
-        update_post_meta( $this->id, '_wogh_sha', $sha );
351
-    }
352
-
353
-    /**
354
-     * The post's metadata
355
-     *
356
-     * Returns Array the post's metadata
357
-     */
358
-    public function meta() {
359
-        $meta = array(
360
-            'ID'           => $this->id,
361
-            'post_title'   => get_the_title( $this->post ),
362
-            'post_name'    => $this->post->post_name,
363
-            'author'       => ( $author = get_userdata( $this->post->post_author ) ) ? $author->display_name : '',
364
-            'post_date'    => $this->post->post_date,
365
-            'post_excerpt' => $this->post->post_excerpt,
366
-            'layout'       => get_post_type( $this->post ),
367
-            'link'         => get_permalink( $this->post ),
368
-            'published'    => 'publish' === $this->status() ? true : false,
369
-            'tags'         => wp_get_post_tags( $this->id, array( 'fields' => 'names' ) ),
370
-            'categories'   => wp_get_post_categories( $this->id, array( 'fields' => 'names' ) )
371
-        );
372
-        if ( empty($this->post->post_name) ) {
373
-            unset($meta['post_name']);
374
-        }
375
-        if ( empty($this->post->post_excerpt) ) {
376
-            unset($meta['post_excerpt']);
377
-        }
378
-        if ( 'yes' == get_option('wogh_ignore_author') ) {
379
-            unset($meta['author']);
380
-        }
381
-
382
-        //convert traditional post_meta values, hide hidden values, skip already populated values
383
-        // foreach ( get_post_custom( $this->id ) as $key => $value ) {
384
-
385
-        //  if ( '_' === substr( $key, 0, 1 ) || isset( $meta[ $key ] ) ) {
386
-        //      continue;
387
-        //  }
388
-
389
-        //  $meta[ $key ] = $value;
390
-
391
-        // }
392
-
393
-        return apply_filters( 'wogh_post_meta', $meta, $this );
394
-    }
395
-
396
-    /**
397
-     * Returns whether the Post has been saved in the DB yet.
398
-     *
399
-     * @return bool
400
-     */
401
-    public function is_new() {
402
-        return $this->new;
403
-    }
404
-
405
-    /**
406
-     * Sets the Post's meta.
407
-     *
408
-     * @param array $meta
409
-     */
410
-    public function set_meta( $meta ) {
411
-        $this->meta = $meta;
412
-    }
413
-
414
-    /**
415
-     * Returns the Post's arguments.
416
-     *
417
-     * @return array
418
-     */
419
-    public function get_args() {
420
-        return $this->args;
421
-    }
422
-
423
-    /**
424
-     * Returns the Post's meta.
425
-     *
426
-     * @return array
427
-     */
428
-    public function get_meta() {
429
-        return $this->meta;
430
-    }
431
-
432
-    /**
433
-     * Sets the Post's WP_Post object.
434
-     *
435
-     * @param WP_Post $post
436
-     *
437
-     * @return $this
438
-     */
439
-    public function set_post( WP_Post $post ) {
440
-        $this->post = $post;
441
-        $this->id   = $post->ID;
442
-
443
-        return $this;
444
-    }
445
-
446
-    /**
447
-     * Transforms the Post into a Blob.
448
-     *
449
-     * @return Writing_On_GitHub_Blob
450
-     */
451
-    public function to_blob() {
452
-        $data = new stdClass;
453
-
454
-        $data->path    = $this->github_path();
455
-        $data->content = $this->github_content();
456
-        $data->sha     = $this->sha();
457
-
458
-        return new Writing_On_GitHub_Blob( $data );
459
-    }
12
+	/**
13
+	 * Api object
14
+	 *
15
+	 * @var Writing_On_GitHub_Api
16
+	 */
17
+	public $api;
18
+
19
+	/**
20
+	 * Post ID
21
+	 * @var integer
22
+	 */
23
+	public $id = 0;
24
+
25
+	/**
26
+	 * Post object
27
+	 * @var WP_Post
28
+	 */
29
+	public $post;
30
+
31
+	/**
32
+	 * Post args.
33
+	 *
34
+	 * @var array
35
+	 */
36
+	protected $args;
37
+
38
+	/**
39
+	 * Post meta.
40
+	 *
41
+	 * @var array
42
+	 */
43
+	protected $meta;
44
+
45
+	/**
46
+	 * Whether the post has been saved.
47
+	 *
48
+	 * @var bool
49
+	 */
50
+	protected $new = true;
51
+
52
+
53
+	protected $old_github_path;
54
+
55
+	/**
56
+	 * Instantiates a new Post object
57
+	 *
58
+	 * @param int|array                 $id_or_args Either a post ID or an array of arguments.
59
+	 * @param Writing_On_GitHub_Api $api API object.
60
+	 *
61
+	 * @todo remove database operations from this method
62
+	 */
63
+	public function __construct( $id_or_args, Writing_On_GitHub_Api $api ) {
64
+		$this->api = $api;
65
+
66
+		if ( is_numeric( $id_or_args ) ) {
67
+			$this->id   = (int) $id_or_args;
68
+			$this->post = get_post( $this->id );
69
+			$this->new  = false;
70
+		}
71
+
72
+		if ( is_array( $id_or_args ) ) {
73
+			$this->args = $id_or_args;
74
+
75
+			if ( isset( $this->args['ID'] ) ) {
76
+				$this->post = get_post( $this->args['ID'] );
77
+
78
+				if ( $this->post ) {
79
+					$this->id  = $this->post->ID;
80
+					$this->new = false;
81
+				} else {
82
+					unset( $this->args['ID'] );
83
+				}
84
+			}
85
+		}
86
+	}
87
+
88
+	public function id() {
89
+		return $this->id;
90
+	}
91
+
92
+	/**
93
+	 * Returns the post type
94
+	 */
95
+	public function type() {
96
+		return $this->post->post_type;
97
+	}
98
+
99
+	/**
100
+	 * Returns the post type
101
+	 */
102
+	public function status() {
103
+		return $this->post->post_status;
104
+	}
105
+
106
+	/**
107
+	 * Returns the post name
108
+	 */
109
+	public function name() {
110
+		return $this->post->post_name;
111
+	}
112
+
113
+	/**
114
+	 * Returns true if the post has a password
115
+	 * @return bool
116
+	 */
117
+	public function has_password() {
118
+		return ! empty( $this->post->post_password );
119
+	}
120
+
121
+	/**
122
+	 * Combines the 2 content parts for GitHub
123
+	 */
124
+	public function github_content() {
125
+		$content = $this->front_matter() . $this->post_content();
126
+		$ending  = apply_filters( 'wogh_line_endings', "\n" );
127
+
128
+		return preg_replace( '~(*BSR_ANYCRLF)\R~', $ending, $content );
129
+	}
130
+
131
+	/**
132
+	 * The post's YAML frontmatter
133
+	 *
134
+	 * Returns String the YAML frontmatter, ready to be written to the file
135
+	 */
136
+	public function front_matter() {
137
+		return "---\n" . spyc_dump( $this->meta() ) . "---\n";
138
+	}
139
+
140
+	/**
141
+	 * Returns the post_content
142
+	 *
143
+	 * Markdownify's the content if applicable
144
+	 */
145
+	public function post_content() {
146
+		$content = $this->post->post_content;
147
+
148
+		if ( function_exists( 'wpmarkdown_html_to_markdown' ) ) {
149
+			$content = wpmarkdown_html_to_markdown( $content );
150
+		} else if ( class_exists( 'WPCom_Markdown' ) ) {
151
+			if ( WPCom_Markdown::get_instance()->is_markdown( $this->post->ID ) ) {
152
+				$content = $this->post->post_content_filtered;
153
+			}
154
+		}
155
+
156
+		return apply_filters( 'wogh_content_export', $content, $this );
157
+	}
158
+
159
+	public function old_github_path() {
160
+		return $this->old_github_path;
161
+	}
162
+
163
+	public function set_old_github_path( $path ) {
164
+		$this->old_github_path = $path;
165
+		update_post_meta( $this->id, '_wogh_github_path', $path );
166
+	}
167
+
168
+
169
+	/**
170
+	 * Retrieves or calculates the proper GitHub path for a given post
171
+	 *
172
+	 * Returns (string) the path relative to repo root
173
+	 */
174
+	public function github_path() {
175
+		$path = $this->github_directory() . $this->github_filename();
176
+
177
+		return $path;
178
+	}
179
+
180
+	/**
181
+	 * Get GitHub directory based on post
182
+	 *
183
+	 * @return string
184
+	 */
185
+	public function github_directory() {
186
+		if ( 'publish' !== $this->status() ) {
187
+			return apply_filters( 'wogh_directory_unpublished', '_drafts/', $this );
188
+		}
189
+
190
+		$name = '';
191
+
192
+		switch ( $this->type() ) {
193
+			case 'post':
194
+				$name = 'posts';
195
+				break;
196
+			case 'page':
197
+				$name = 'pages';
198
+				break;
199
+			default:
200
+				$obj = get_post_type_object( $this->type() );
201
+
202
+				if ( $obj ) {
203
+					$name = strtolower( $obj->labels->name );
204
+				}
205
+
206
+				if ( ! $name ) {
207
+					$name = '';
208
+				}
209
+		}
210
+
211
+		if ( $name ) {
212
+			$name = '_' . $name . '/';
213
+		}
214
+
215
+		return apply_filters( 'wogh_directory_published', $name, $this );
216
+	}
217
+
218
+	/**
219
+	 * Build GitHub filename based on post
220
+	 */
221
+	public function github_filename() {
222
+		if ( 'post' === $this->type() ) {
223
+			$filename = get_the_time( 'Y-m-d-', $this->id ) . $this->get_name() . '.md';
224
+		} else {
225
+			$filename = $this->get_name() . '.md';
226
+		}
227
+
228
+		return apply_filters( 'wogh_filename', $filename, $this );
229
+	}
230
+
231
+	/**
232
+	 * Returns a post slug we can use in the GitHub filename
233
+	 *
234
+	 * @return string
235
+	 */
236
+	protected function get_name() {
237
+		if ( '' !== $this->name() ) {
238
+			return $this->name();
239
+		}
240
+
241
+		return sanitize_title( get_the_title( $this->post ) );
242
+	}
243
+
244
+	/**
245
+	 * is put on github
246
+	 * @return boolean
247
+	 */
248
+	public function is_on_github() {
249
+		$sha = get_post_meta( $this->id, '_wogh_sha', true );
250
+		$github_path = get_post_meta( $this->id, '_wogh_github_path', true );
251
+		if ( $sha && $github_path ) {
252
+			return true;
253
+		}
254
+		return false;
255
+	}
256
+
257
+	/**
258
+	 * Returns the URL for the post on GitHub.
259
+	 *
260
+	 * @return string
261
+	 */
262
+	public function github_view_url() {
263
+		$github_path = get_post_meta( $this->id, '_wogh_github_path', true );
264
+		$repository = $this->api->fetch()->repository();
265
+		$branch = $this->api->fetch()->branch();
266
+
267
+		return "https://github.com/$repository/blob/$branch/$github_path";
268
+	}
269
+
270
+	/**
271
+	 * Returns the URL for the post on GitHub.
272
+	 *
273
+	 * @return string
274
+	 */
275
+	public function github_edit_url() {
276
+		$github_path = get_post_meta( $this->id, '_wogh_github_path', true );
277
+		$repository = $this->api->fetch()->repository();
278
+		$branch = $this->api->fetch()->branch();
279
+
280
+		return "https://github.com/$repository/edit/$branch/$github_path";
281
+	}
282
+
283
+	/**
284
+	 * Retrieve post type directory from blob path.
285
+	 *
286
+	 * @param string $path Path string.
287
+	 *
288
+	 * @return string
289
+	 */
290
+	public function get_directory_from_path( $path ) {
291
+		$directory = explode( '/', $path );
292
+		$directory = count( $directory ) > 0 ? $directory[0] : '';
293
+
294
+		return $directory;
295
+	}
296
+
297
+	/**
298
+	 * Determines the last author to modify the post
299
+	 *
300
+	 * Returns Array an array containing the author name and email
301
+	 */
302
+	public function last_modified_author() {
303
+		if ( $last_id = get_post_meta( $this->id, '_edit_last', true ) ) {
304
+			$user = get_userdata( $last_id );
305
+
306
+			if ( $user ) {
307
+				return array( 'name' => $user->display_name, 'email' => $user->user_email );
308
+			}
309
+		}
310
+
311
+		return array();
312
+	}
313
+
314
+	/**
315
+	 * The post's sha
316
+	 * Cached as post meta, or will make a live call if need be
317
+	 *
318
+	 * Returns String the sha1 hash
319
+	 */
320
+	public function sha() {
321
+		$sha = get_post_meta( $this->id, '_wogh_sha', true );
322
+
323
+		// If we've done a full export and we have no sha
324
+		// then we should try a live check to see if it exists.
325
+		// if ( ! $sha && 'yes' === get_option( '_wogh_fully_exported' ) ) {
326
+
327
+		//  // @todo could we eliminate this by calling down the full tree and searching it
328
+		//  $data = $this->api->fetch()->remote_contents( $this );
329
+
330
+		//  if ( ! is_wp_error( $data ) ) {
331
+		//      update_post_meta( $this->id, '_wogh_sha', $data->sha );
332
+		//      $sha = $data->sha;
333
+		//  }
334
+		// }
335
+
336
+		// if the sha still doesn't exist, then it's empty
337
+		if ( ! $sha || is_wp_error( $sha ) ) {
338
+			$sha = '';
339
+		}
340
+
341
+		return $sha;
342
+	}
343
+
344
+	/**
345
+	 * Save the sha to post
346
+	 *
347
+	 * @param string $sha
348
+	 */
349
+	public function set_sha( $sha ) {
350
+		update_post_meta( $this->id, '_wogh_sha', $sha );
351
+	}
352
+
353
+	/**
354
+	 * The post's metadata
355
+	 *
356
+	 * Returns Array the post's metadata
357
+	 */
358
+	public function meta() {
359
+		$meta = array(
360
+			'ID'           => $this->id,
361
+			'post_title'   => get_the_title( $this->post ),
362
+			'post_name'    => $this->post->post_name,
363
+			'author'       => ( $author = get_userdata( $this->post->post_author ) ) ? $author->display_name : '',
364
+			'post_date'    => $this->post->post_date,
365
+			'post_excerpt' => $this->post->post_excerpt,
366
+			'layout'       => get_post_type( $this->post ),
367
+			'link'         => get_permalink( $this->post ),
368
+			'published'    => 'publish' === $this->status() ? true : false,
369
+			'tags'         => wp_get_post_tags( $this->id, array( 'fields' => 'names' ) ),
370
+			'categories'   => wp_get_post_categories( $this->id, array( 'fields' => 'names' ) )
371
+		);
372
+		if ( empty($this->post->post_name) ) {
373
+			unset($meta['post_name']);
374
+		}
375
+		if ( empty($this->post->post_excerpt) ) {
376
+			unset($meta['post_excerpt']);
377
+		}
378
+		if ( 'yes' == get_option('wogh_ignore_author') ) {
379
+			unset($meta['author']);
380
+		}
381
+
382
+		//convert traditional post_meta values, hide hidden values, skip already populated values
383
+		// foreach ( get_post_custom( $this->id ) as $key => $value ) {
384
+
385
+		//  if ( '_' === substr( $key, 0, 1 ) || isset( $meta[ $key ] ) ) {
386
+		//      continue;
387
+		//  }
388
+
389
+		//  $meta[ $key ] = $value;
390
+
391
+		// }
392
+
393
+		return apply_filters( 'wogh_post_meta', $meta, $this );
394
+	}
395
+
396
+	/**
397
+	 * Returns whether the Post has been saved in the DB yet.
398
+	 *
399
+	 * @return bool
400
+	 */
401
+	public function is_new() {
402
+		return $this->new;
403
+	}
404
+
405
+	/**
406
+	 * Sets the Post's meta.
407
+	 *
408
+	 * @param array $meta
409
+	 */
410
+	public function set_meta( $meta ) {
411
+		$this->meta = $meta;
412
+	}
413
+
414
+	/**
415
+	 * Returns the Post's arguments.
416
+	 *
417
+	 * @return array
418
+	 */
419
+	public function get_args() {
420
+		return $this->args;
421
+	}
422
+
423
+	/**
424
+	 * Returns the Post's meta.
425
+	 *
426
+	 * @return array
427
+	 */
428
+	public function get_meta() {
429
+		return $this->meta;
430
+	}
431
+
432
+	/**
433
+	 * Sets the Post's WP_Post object.
434
+	 *
435
+	 * @param WP_Post $post
436
+	 *
437
+	 * @return $this
438
+	 */
439
+	public function set_post( WP_Post $post ) {
440
+		$this->post = $post;
441
+		$this->id   = $post->ID;
442
+
443
+		return $this;
444
+	}
445
+
446
+	/**
447
+	 * Transforms the Post into a Blob.
448
+	 *
449
+	 * @return Writing_On_GitHub_Blob
450
+	 */
451
+	public function to_blob() {
452
+		$data = new stdClass;
453
+
454
+		$data->path    = $this->github_path();
455
+		$data->content = $this->github_content();
456
+		$data->sha     = $this->sha();
457
+
458
+		return new Writing_On_GitHub_Blob( $data );
459
+	}
460 460
 }
Please login to merge, or discard this patch.
Spacing   +62 added lines, -62 removed lines patch added patch discarded remove patch
@@ -60,26 +60,26 @@  discard block
 block discarded – undo
60 60
      *
61 61
      * @todo remove database operations from this method
62 62
      */
63
-    public function __construct( $id_or_args, Writing_On_GitHub_Api $api ) {
63
+    public function __construct($id_or_args, Writing_On_GitHub_Api $api) {
64 64
         $this->api = $api;
65 65
 
66
-        if ( is_numeric( $id_or_args ) ) {
66
+        if (is_numeric($id_or_args)) {
67 67
             $this->id   = (int) $id_or_args;
68
-            $this->post = get_post( $this->id );
68
+            $this->post = get_post($this->id);
69 69
             $this->new  = false;
70 70
         }
71 71
 
72
-        if ( is_array( $id_or_args ) ) {
72
+        if (is_array($id_or_args)) {
73 73
             $this->args = $id_or_args;
74 74
 
75
-            if ( isset( $this->args['ID'] ) ) {
76
-                $this->post = get_post( $this->args['ID'] );
75
+            if (isset($this->args['ID'])) {
76
+                $this->post = get_post($this->args['ID']);
77 77
 
78
-                if ( $this->post ) {
78
+                if ($this->post) {
79 79
                     $this->id  = $this->post->ID;
80 80
                     $this->new = false;
81 81
                 } else {
82
-                    unset( $this->args['ID'] );
82
+                    unset($this->args['ID']);
83 83
                 }
84 84
             }
85 85
         }
@@ -115,7 +115,7 @@  discard block
 block discarded – undo
115 115
      * @return bool
116 116
      */
117 117
     public function has_password() {
118
-        return ! empty( $this->post->post_password );
118
+        return ! empty($this->post->post_password);
119 119
     }
120 120
 
121 121
     /**
@@ -123,9 +123,9 @@  discard block
 block discarded – undo
123 123
      */
124 124
     public function github_content() {
125 125
         $content = $this->front_matter() . $this->post_content();
126
-        $ending  = apply_filters( 'wogh_line_endings', "\n" );
126
+        $ending  = apply_filters('wogh_line_endings', "\n");
127 127
 
128
-        return preg_replace( '~(*BSR_ANYCRLF)\R~', $ending, $content );
128
+        return preg_replace('~(*BSR_ANYCRLF)\R~', $ending, $content);
129 129
     }
130 130
 
131 131
     /**
@@ -134,7 +134,7 @@  discard block
 block discarded – undo
134 134
      * Returns String the YAML frontmatter, ready to be written to the file
135 135
      */
136 136
     public function front_matter() {
137
-        return "---\n" . spyc_dump( $this->meta() ) . "---\n";
137
+        return "---\n" . spyc_dump($this->meta()) . "---\n";
138 138
     }
139 139
 
140 140
     /**
@@ -145,24 +145,24 @@  discard block
 block discarded – undo
145 145
     public function post_content() {
146 146
         $content = $this->post->post_content;
147 147
 
148
-        if ( function_exists( 'wpmarkdown_html_to_markdown' ) ) {
149
-            $content = wpmarkdown_html_to_markdown( $content );
150
-        } else if ( class_exists( 'WPCom_Markdown' ) ) {
151
-            if ( WPCom_Markdown::get_instance()->is_markdown( $this->post->ID ) ) {
148
+        if (function_exists('wpmarkdown_html_to_markdown')) {
149
+            $content = wpmarkdown_html_to_markdown($content);
150
+        } else if (class_exists('WPCom_Markdown')) {
151
+            if (WPCom_Markdown::get_instance()->is_markdown($this->post->ID)) {
152 152
                 $content = $this->post->post_content_filtered;
153 153
             }
154 154
         }
155 155
 
156
-        return apply_filters( 'wogh_content_export', $content, $this );
156
+        return apply_filters('wogh_content_export', $content, $this);
157 157
     }
158 158
 
159 159
     public function old_github_path() {
160 160
         return $this->old_github_path;
161 161
     }
162 162
 
163
-    public function set_old_github_path( $path ) {
163
+    public function set_old_github_path($path) {
164 164
         $this->old_github_path = $path;
165
-        update_post_meta( $this->id, '_wogh_github_path', $path );
165
+        update_post_meta($this->id, '_wogh_github_path', $path);
166 166
     }
167 167
 
168 168
 
@@ -183,13 +183,13 @@  discard block
 block discarded – undo
183 183
      * @return string
184 184
      */
185 185
     public function github_directory() {
186
-        if ( 'publish' !== $this->status() ) {
187
-            return apply_filters( 'wogh_directory_unpublished', '_drafts/', $this );
186
+        if ('publish' !== $this->status()) {
187
+            return apply_filters('wogh_directory_unpublished', '_drafts/', $this);
188 188
         }
189 189
 
190 190
         $name = '';
191 191
 
192
-        switch ( $this->type() ) {
192
+        switch ($this->type()) {
193 193
             case 'post':
194 194
                 $name = 'posts';
195 195
                 break;
@@ -197,35 +197,35 @@  discard block
 block discarded – undo
197 197
                 $name = 'pages';
198 198
                 break;
199 199
             default:
200
-                $obj = get_post_type_object( $this->type() );
200
+                $obj = get_post_type_object($this->type());
201 201
 
202
-                if ( $obj ) {
203
-                    $name = strtolower( $obj->labels->name );
202
+                if ($obj) {
203
+                    $name = strtolower($obj->labels->name);
204 204
                 }
205 205
 
206
-                if ( ! $name ) {
206
+                if ( ! $name) {
207 207
                     $name = '';
208 208
                 }
209 209
         }
210 210
 
211
-        if ( $name ) {
211
+        if ($name) {
212 212
             $name = '_' . $name . '/';
213 213
         }
214 214
 
215
-        return apply_filters( 'wogh_directory_published', $name, $this );
215
+        return apply_filters('wogh_directory_published', $name, $this);
216 216
     }
217 217
 
218 218
     /**
219 219
      * Build GitHub filename based on post
220 220
      */
221 221
     public function github_filename() {
222
-        if ( 'post' === $this->type() ) {
223
-            $filename = get_the_time( 'Y-m-d-', $this->id ) . $this->get_name() . '.md';
222
+        if ('post' === $this->type()) {
223
+            $filename = get_the_time('Y-m-d-', $this->id) . $this->get_name() . '.md';
224 224
         } else {
225 225
             $filename = $this->get_name() . '.md';
226 226
         }
227 227
 
228
-        return apply_filters( 'wogh_filename', $filename, $this );
228
+        return apply_filters('wogh_filename', $filename, $this);
229 229
     }
230 230
 
231 231
     /**
@@ -234,11 +234,11 @@  discard block
 block discarded – undo
234 234
      * @return string
235 235
      */
236 236
     protected function get_name() {
237
-        if ( '' !== $this->name() ) {
237
+        if ('' !== $this->name()) {
238 238
             return $this->name();
239 239
         }
240 240
 
241
-        return sanitize_title( get_the_title( $this->post ) );
241
+        return sanitize_title(get_the_title($this->post));
242 242
     }
243 243
 
244 244
     /**
@@ -246,9 +246,9 @@  discard block
 block discarded – undo
246 246
      * @return boolean
247 247
      */
248 248
     public function is_on_github() {
249
-        $sha = get_post_meta( $this->id, '_wogh_sha', true );
250
-        $github_path = get_post_meta( $this->id, '_wogh_github_path', true );
251
-        if ( $sha && $github_path ) {
249
+        $sha = get_post_meta($this->id, '_wogh_sha', true);
250
+        $github_path = get_post_meta($this->id, '_wogh_github_path', true);
251
+        if ($sha && $github_path) {
252 252
             return true;
253 253
         }
254 254
         return false;
@@ -260,7 +260,7 @@  discard block
 block discarded – undo
260 260
      * @return string
261 261
      */
262 262
     public function github_view_url() {
263
-        $github_path = get_post_meta( $this->id, '_wogh_github_path', true );
263
+        $github_path = get_post_meta($this->id, '_wogh_github_path', true);
264 264
         $repository = $this->api->fetch()->repository();
265 265
         $branch = $this->api->fetch()->branch();
266 266
 
@@ -273,7 +273,7 @@  discard block
 block discarded – undo
273 273
      * @return string
274 274
      */
275 275
     public function github_edit_url() {
276
-        $github_path = get_post_meta( $this->id, '_wogh_github_path', true );
276
+        $github_path = get_post_meta($this->id, '_wogh_github_path', true);
277 277
         $repository = $this->api->fetch()->repository();
278 278
         $branch = $this->api->fetch()->branch();
279 279
 
@@ -287,9 +287,9 @@  discard block
 block discarded – undo
287 287
      *
288 288
      * @return string
289 289
      */
290
-    public function get_directory_from_path( $path ) {
291
-        $directory = explode( '/', $path );
292
-        $directory = count( $directory ) > 0 ? $directory[0] : '';
290
+    public function get_directory_from_path($path) {
291
+        $directory = explode('/', $path);
292
+        $directory = count($directory) > 0 ? $directory[0] : '';
293 293
 
294 294
         return $directory;
295 295
     }
@@ -300,11 +300,11 @@  discard block
 block discarded – undo
300 300
      * Returns Array an array containing the author name and email
301 301
      */
302 302
     public function last_modified_author() {
303
-        if ( $last_id = get_post_meta( $this->id, '_edit_last', true ) ) {
304
-            $user = get_userdata( $last_id );
303
+        if ($last_id = get_post_meta($this->id, '_edit_last', true)) {
304
+            $user = get_userdata($last_id);
305 305
 
306
-            if ( $user ) {
307
-                return array( 'name' => $user->display_name, 'email' => $user->user_email );
306
+            if ($user) {
307
+                return array('name' => $user->display_name, 'email' => $user->user_email);
308 308
             }
309 309
         }
310 310
 
@@ -318,7 +318,7 @@  discard block
 block discarded – undo
318 318
      * Returns String the sha1 hash
319 319
      */
320 320
     public function sha() {
321
-        $sha = get_post_meta( $this->id, '_wogh_sha', true );
321
+        $sha = get_post_meta($this->id, '_wogh_sha', true);
322 322
 
323 323
         // If we've done a full export and we have no sha
324 324
         // then we should try a live check to see if it exists.
@@ -334,7 +334,7 @@  discard block
 block discarded – undo
334 334
         // }
335 335
 
336 336
         // if the sha still doesn't exist, then it's empty
337
-        if ( ! $sha || is_wp_error( $sha ) ) {
337
+        if ( ! $sha || is_wp_error($sha)) {
338 338
             $sha = '';
339 339
         }
340 340
 
@@ -346,8 +346,8 @@  discard block
 block discarded – undo
346 346
      *
347 347
      * @param string $sha
348 348
      */
349
-    public function set_sha( $sha ) {
350
-        update_post_meta( $this->id, '_wogh_sha', $sha );
349
+    public function set_sha($sha) {
350
+        update_post_meta($this->id, '_wogh_sha', $sha);
351 351
     }
352 352
 
353 353
     /**
@@ -358,24 +358,24 @@  discard block
 block discarded – undo
358 358
     public function meta() {
359 359
         $meta = array(
360 360
             'ID'           => $this->id,
361
-            'post_title'   => get_the_title( $this->post ),
361
+            'post_title'   => get_the_title($this->post),
362 362
             'post_name'    => $this->post->post_name,
363
-            'author'       => ( $author = get_userdata( $this->post->post_author ) ) ? $author->display_name : '',
363
+            'author'       => ($author = get_userdata($this->post->post_author)) ? $author->display_name : '',
364 364
             'post_date'    => $this->post->post_date,
365 365
             'post_excerpt' => $this->post->post_excerpt,
366
-            'layout'       => get_post_type( $this->post ),
367
-            'link'         => get_permalink( $this->post ),
366
+            'layout'       => get_post_type($this->post),
367
+            'link'         => get_permalink($this->post),
368 368
             'published'    => 'publish' === $this->status() ? true : false,
369
-            'tags'         => wp_get_post_tags( $this->id, array( 'fields' => 'names' ) ),
370
-            'categories'   => wp_get_post_categories( $this->id, array( 'fields' => 'names' ) )
369
+            'tags'         => wp_get_post_tags($this->id, array('fields' => 'names')),
370
+            'categories'   => wp_get_post_categories($this->id, array('fields' => 'names'))
371 371
         );
372
-        if ( empty($this->post->post_name) ) {
372
+        if (empty($this->post->post_name)) {
373 373
             unset($meta['post_name']);
374 374
         }
375
-        if ( empty($this->post->post_excerpt) ) {
375
+        if (empty($this->post->post_excerpt)) {
376 376
             unset($meta['post_excerpt']);
377 377
         }
378
-        if ( 'yes' == get_option('wogh_ignore_author') ) {
378
+        if ('yes' == get_option('wogh_ignore_author')) {
379 379
             unset($meta['author']);
380 380
         }
381 381
 
@@ -390,7 +390,7 @@  discard block
 block discarded – undo
390 390
 
391 391
         // }
392 392
 
393
-        return apply_filters( 'wogh_post_meta', $meta, $this );
393
+        return apply_filters('wogh_post_meta', $meta, $this);
394 394
     }
395 395
 
396 396
     /**
@@ -407,7 +407,7 @@  discard block
 block discarded – undo
407 407
      *
408 408
      * @param array $meta
409 409
      */
410
-    public function set_meta( $meta ) {
410
+    public function set_meta($meta) {
411 411
         $this->meta = $meta;
412 412
     }
413 413
 
@@ -436,7 +436,7 @@  discard block
 block discarded – undo
436 436
      *
437 437
      * @return $this
438 438
      */
439
-    public function set_post( WP_Post $post ) {
439
+    public function set_post(WP_Post $post) {
440 440
         $this->post = $post;
441 441
         $this->id   = $post->ID;
442 442
 
@@ -455,6 +455,6 @@  discard block
 block discarded – undo
455 455
         $data->content = $this->github_content();
456 456
         $data->sha     = $this->sha();
457 457
 
458
-        return new Writing_On_GitHub_Blob( $data );
458
+        return new Writing_On_GitHub_Blob($data);
459 459
     }
460 460
 }
Please login to merge, or discard this patch.
lib/import.php 2 patches
Indentation   +325 added lines, -325 removed lines patch added patch discarded remove patch
@@ -10,329 +10,329 @@
 block discarded – undo
10 10
  */
11 11
 class Writing_On_GitHub_Import {
12 12
 
13
-    /**
14
-     * Application container.
15
-     *
16
-     * @var Writing_On_GitHub
17
-     */
18
-    protected $app;
19
-
20
-    /**
21
-     * Initializes a new import manager.
22
-     *
23
-     * @param Writing_On_GitHub $app Application container.
24
-     */
25
-    public function __construct( Writing_On_GitHub $app ) {
26
-        $this->app = $app;
27
-    }
28
-
29
-    /**
30
-     * Imports a payload.
31
-     * @param  Writing_On_GitHub_Payload $payload
32
-     *
33
-     * @return string|WP_Error
34
-     */
35
-    public function payload( Writing_On_GitHub_Payload $payload ) {
36
-
37
-        $result = $this->app->api()->fetch()->compare( $payload->get_before_commit_id() );
38
-
39
-        if ( is_wp_error( $result ) ) {
40
-            /* @var WP_Error $result */
41
-            return $result;
42
-        }
43
-
44
-        if ( is_array( $result ) ) {
45
-            $result = $this->import_files( $result );
46
-        }
47
-
48
-        if ( is_wp_error( $result ) ) {
49
-            return $files;
50
-        }
51
-
52
-        return __( 'Payload processed', 'writing-on-github' );
53
-    }
54
-
55
-    /**
56
-     * import blob by files
57
-     * @param  Writing_On_GitHub_File_Info[] $files
58
-     *
59
-     * @return string|WP_Error
60
-     */
61
-    protected function import_files( $files ) {
62
-
63
-        $error      = false;
64
-        $delete_ids = false;
65
-
66
-        $result = $this->compare( $files, $delete_ids );
67
-
68
-        if ( is_wp_error( $result ) ) {
69
-            return $result;
70
-        }
71
-
72
-        if ( $delete_ids ) {
73
-            foreach ($delete_ids as $id) {
74
-                $result = $this->app->database()->delete_post( $id );
75
-                if ( is_wp_error( $result ) ) {
76
-                    /* @var WP_Error $result */
77
-                    $error = wogh_append_error( $error, $result );
78
-                }
79
-            }
80
-        }
81
-
82
-        return $error;
83
-    }
84
-
85
-    /**
86
-     * Imports the latest commit on the master branch.
87
-     *
88
-     * @return string|WP_Error
89
-     */
90
-    public function master() {
91
-        $result = $this->app->api()->fetch()->tree_recursive();
92
-
93
-        if ( is_wp_error( $result ) ) {
94
-            /* @var WP_Error $result */
95
-            return $result;
96
-        }
97
-
98
-        if ( is_array( $result ) ) {
99
-            $result = $this->import_files( $result );
100
-        }
101
-
102
-        if ( is_wp_error( $result ) ) {
103
-            /* @var WP_Error $result */
104
-            return $result;
105
-        }
106
-
107
-        return __( 'Payload processed', 'writing-on-github' );
108
-    }
109
-
110
-    /**
111
-     * Do compare
112
-     * @param  Writing_On_GitHub_File_Info[]|WP_Error $files
113
-     * @param  int[] &$delete_ids
114
-     *
115
-     * @return string|WP_Error
116
-     */
117
-    protected function compare( $files, &$delete_ids ) {
118
-        if ( is_wp_error( $files ) ) {
119
-            /* @var WP_Error $files */
120
-            return $files;
121
-        }
122
-
123
-        $posts = array();
124
-        $new   = array();
125
-
126
-        $idsmap = array();
127
-
128
-        foreach ( $files as $file ) {
129
-            if ( ! $this->importable_file( $file ) ) {
130
-                continue;
131
-            }
132
-
133
-            $blob = $this->app->api()->fetch()->blob( $file );
134
-            // network error ?
135
-            if ( ! $blob instanceof Writing_On_GitHub_Blob ) {
136
-                continue;
137
-            }
138
-
139
-            if ( $this->importable_raw_file( $blob ) ) {
140
-                $this->import_raw_file( $blob, $file->status == 'removed' );
141
-                continue;
142
-            }
143
-
144
-            if ( ! $this->importable_blob( $blob ) ) {
145
-                continue;
146
-            }
147
-
148
-            $post = $this->blob_to_post( $blob );
149
-
150
-            if ( $file->status == 'removed' ) {
151
-                if ( $blob->id() ) {
152
-                    $idsmap[$blob->id()] = true;
153
-                }
154
-            } elseif ( $post != false ) {
155
-                $posts[] = $post;
156
-                if ( $post->is_new() ) {
157
-                    $new[] = $post;
158
-                }
159
-            }
160
-        }
161
-
162
-        foreach ( $posts as $post ) {
163
-            if ( $post->id() && isset( $idsmap[ $post->id() ] ) ) {
164
-                unset( $idsmap[ $post->id() ] );
165
-            }
166
-        }
167
-        $delete_ids = array();
168
-        foreach ( $idsmap as $id => $value ) {
169
-            $delete_ids[] = $id;
170
-        }
171
-
172
-        // $this->app->database()->save_posts( $posts, $commit->author_email() );
173
-
174
-        $result = $this->app->database()->save_posts( $posts );
175
-
176
-        if ( is_wp_error( $result ) ) {
177
-            return $result;
178
-        }
179
-
180
-        if ( ! empty( $new ) ) {
181
-            $result = $this->app->export()->new_posts( $new );
182
-
183
-            if ( is_wp_error( $result ) ) {
184
-                return $result;
185
-            }
186
-        }
187
-
188
-        return $posts;
189
-    }
190
-
191
-    /**
192
-     * Checks whether the provided blob should be imported.
193
-     *
194
-     * @param Writing_On_GitHub_File_Info $file
195
-     *
196
-     * @return bool
197
-     */
198
-    protected function importable_file( Writing_On_GitHub_File_Info $file ) {
199
-
200
-        // only _pages and _posts
201
-        if ( strncasecmp($file->path, '_pages/', strlen('_pages/') ) != 0 &&
202
-             strncasecmp($file->path, '_posts/', strlen('_posts/') ) != 0 &&
203
-             strncasecmp($file->path, 'images/', strlen('images/') ) != 0 ) {
204
-            return false;
205
-        }
206
-
207
-
208
-        // if ( ! $file->has_frontmatter() ) {
209
-        //  return false;
210
-        // }
211
-
212
-        return true;
213
-    }
214
-
215
-    /**
216
-     * Checks whether the provided blob should be imported.
217
-     *
218
-     * @param Writing_On_GitHub_Blob $blob Blob to validate.
219
-     *
220
-     * @return bool
221
-     */
222
-    protected function importable_blob( Writing_On_GitHub_Blob $blob ) {
223
-        // global $wpdb;
224
-
225
-        // // Skip the repo's readme.
226
-        // if ( 'readme' === strtolower( substr( $blob->path(), 0, 6 ) ) ) {
227
-        //  return false;
228
-        // }
229
-
230
-        // // If the blob sha already matches a post, then move on.
231
-        // if ( ! is_wp_error( $this->app->database()->fetch_by_sha( $blob->sha() ) ) ) {
232
-        //  return false;
233
-        // }
234
-
235
-        if ( ! $blob->has_frontmatter() ) {
236
-            return false;
237
-        }
238
-
239
-        return true;
240
-    }
241
-
242
-    protected function importable_raw_file( Writing_On_GitHub_Blob $blob ) {
243
-        if ( $blob->has_frontmatter() ) {
244
-            return false;
245
-        }
246
-
247
-        // only images
248
-        if ( strncasecmp($blob->path(), 'images/', strlen('images/') ) != 0) {
249
-            return false;
250
-        }
251
-
252
-        return true;
253
-    }
254
-
255
-    /**
256
-     * Imports a raw file content into file system.
257
-     * @param  Writing_On_GitHub_Blob $blob
258
-     * @param  bool                   $is_remove
259
-     */
260
-    protected function import_raw_file( Writing_On_GitHub_Blob $blob, $is_remove ) {
261
-        $arr = wp_upload_dir();
262
-        $path = $arr['basedir'] . '/writing-on-github/' . $blob->path();
263
-        if ( $is_remove ) {
264
-            if ( file_exists($path) ) {
265
-                unlink($path);
266
-            }
267
-        } else {
268
-            $dirname = dirname($path);
269
-            if ( ! file_exists($dirname) ) {
270
-                wp_mkdir_p($dirname);
271
-            }
272
-
273
-            file_put_contents($path, $blob->content());
274
-        }
275
-    }
276
-
277
-    /**
278
-     * Imports a single blob content into matching post.
279
-     *
280
-     * @param Writing_On_GitHub_Blob $blob Blob to transform into a Post.
281
-     *
282
-     * @return Writing_On_GitHub_Post|false
283
-     */
284
-    protected function blob_to_post( Writing_On_GitHub_Blob $blob ) {
285
-        $args = array( 'post_content' => $blob->content_import() );
286
-        $meta = $blob->meta();
287
-
288
-        $id = false;
289
-
290
-        if ( ! empty( $meta ) ) {
291
-            if ( array_key_exists( 'layout', $meta ) ) {
292
-                $args['post_type'] = $meta['layout'];
293
-                unset( $meta['layout'] );
294
-            }
295
-
296
-            if ( array_key_exists( 'published', $meta ) ) {
297
-                $args['post_status'] = true === $meta['published'] ? 'publish' : 'draft';
298
-                unset( $meta['published'] );
299
-            }
300
-
301
-            if ( array_key_exists( 'post_title', $meta ) ) {
302
-                $args['post_title'] = $meta['post_title'];
303
-                unset( $meta['post_title'] );
304
-            }
305
-
306
-            if ( array_key_exists( 'post_name', $meta ) ) {
307
-                $args['post_name'] = $meta['post_name'];
308
-                unset( $meta['post_name'] );
309
-            }
310
-
311
-            if ( array_key_exists( 'ID', $meta ) ) {
312
-                $id = $args['ID'] = $meta['ID'];
313
-                $blob->set_id($id);
314
-                unset( $meta['ID'] );
315
-            }
316
-        }
317
-
318
-        $meta['_wogh_sha'] = $blob->sha();
319
-
320
-        if ( $id ) {
321
-            $old_sha = get_post_meta( $id, '_wogh_sha', true );
322
-            $old_github_path = get_post_meta( $id, '_wogh_github_path', true );
323
-
324
-            // dont save post when has same sha
325
-            if ( $old_sha  && $old_sha == $meta['_wogh_sha'] &&
326
-                 $old_github_path && $old_github_path == $blob->path() ) {
327
-                return false;
328
-            }
329
-        }
330
-
331
-        $post = new Writing_On_GitHub_Post( $args, $this->app->api() );
332
-        $post->set_old_github_path( $blob->path() );
333
-        $post->set_meta( $meta );
334
-        $blob->set_id( $post->id() );
335
-
336
-        return $post;
337
-    }
13
+	/**
14
+	 * Application container.
15
+	 *
16
+	 * @var Writing_On_GitHub
17
+	 */
18
+	protected $app;
19
+
20
+	/**
21
+	 * Initializes a new import manager.
22
+	 *
23
+	 * @param Writing_On_GitHub $app Application container.
24
+	 */
25
+	public function __construct( Writing_On_GitHub $app ) {
26
+		$this->app = $app;
27
+	}
28
+
29
+	/**
30
+	 * Imports a payload.
31
+	 * @param  Writing_On_GitHub_Payload $payload
32
+	 *
33
+	 * @return string|WP_Error
34
+	 */
35
+	public function payload( Writing_On_GitHub_Payload $payload ) {
36
+
37
+		$result = $this->app->api()->fetch()->compare( $payload->get_before_commit_id() );
38
+
39
+		if ( is_wp_error( $result ) ) {
40
+			/* @var WP_Error $result */
41
+			return $result;
42
+		}
43
+
44
+		if ( is_array( $result ) ) {
45
+			$result = $this->import_files( $result );
46
+		}
47
+
48
+		if ( is_wp_error( $result ) ) {
49
+			return $files;
50
+		}
51
+
52
+		return __( 'Payload processed', 'writing-on-github' );
53
+	}
54
+
55
+	/**
56
+	 * import blob by files
57
+	 * @param  Writing_On_GitHub_File_Info[] $files
58
+	 *
59
+	 * @return string|WP_Error
60
+	 */
61
+	protected function import_files( $files ) {
62
+
63
+		$error      = false;
64
+		$delete_ids = false;
65
+
66
+		$result = $this->compare( $files, $delete_ids );
67
+
68
+		if ( is_wp_error( $result ) ) {
69
+			return $result;
70
+		}
71
+
72
+		if ( $delete_ids ) {
73
+			foreach ($delete_ids as $id) {
74
+				$result = $this->app->database()->delete_post( $id );
75
+				if ( is_wp_error( $result ) ) {
76
+					/* @var WP_Error $result */
77
+					$error = wogh_append_error( $error, $result );
78
+				}
79
+			}
80
+		}
81
+
82
+		return $error;
83
+	}
84
+
85
+	/**
86
+	 * Imports the latest commit on the master branch.
87
+	 *
88
+	 * @return string|WP_Error
89
+	 */
90
+	public function master() {
91
+		$result = $this->app->api()->fetch()->tree_recursive();
92
+
93
+		if ( is_wp_error( $result ) ) {
94
+			/* @var WP_Error $result */
95
+			return $result;
96
+		}
97
+
98
+		if ( is_array( $result ) ) {
99
+			$result = $this->import_files( $result );
100
+		}
101
+
102
+		if ( is_wp_error( $result ) ) {
103
+			/* @var WP_Error $result */
104
+			return $result;
105
+		}
106
+
107
+		return __( 'Payload processed', 'writing-on-github' );
108
+	}
109
+
110
+	/**
111
+	 * Do compare
112
+	 * @param  Writing_On_GitHub_File_Info[]|WP_Error $files
113
+	 * @param  int[] &$delete_ids
114
+	 *
115
+	 * @return string|WP_Error
116
+	 */
117
+	protected function compare( $files, &$delete_ids ) {
118
+		if ( is_wp_error( $files ) ) {
119
+			/* @var WP_Error $files */
120
+			return $files;
121
+		}
122
+
123
+		$posts = array();
124
+		$new   = array();
125
+
126
+		$idsmap = array();
127
+
128
+		foreach ( $files as $file ) {
129
+			if ( ! $this->importable_file( $file ) ) {
130
+				continue;
131
+			}
132
+
133
+			$blob = $this->app->api()->fetch()->blob( $file );
134
+			// network error ?
135
+			if ( ! $blob instanceof Writing_On_GitHub_Blob ) {
136
+				continue;
137
+			}
138
+
139
+			if ( $this->importable_raw_file( $blob ) ) {
140
+				$this->import_raw_file( $blob, $file->status == 'removed' );
141
+				continue;
142
+			}
143
+
144
+			if ( ! $this->importable_blob( $blob ) ) {
145
+				continue;
146
+			}
147
+
148
+			$post = $this->blob_to_post( $blob );
149
+
150
+			if ( $file->status == 'removed' ) {
151
+				if ( $blob->id() ) {
152
+					$idsmap[$blob->id()] = true;
153
+				}
154
+			} elseif ( $post != false ) {
155
+				$posts[] = $post;
156
+				if ( $post->is_new() ) {
157
+					$new[] = $post;
158
+				}
159
+			}
160
+		}
161
+
162
+		foreach ( $posts as $post ) {
163
+			if ( $post->id() && isset( $idsmap[ $post->id() ] ) ) {
164
+				unset( $idsmap[ $post->id() ] );
165
+			}
166
+		}
167
+		$delete_ids = array();
168
+		foreach ( $idsmap as $id => $value ) {
169
+			$delete_ids[] = $id;
170
+		}
171
+
172
+		// $this->app->database()->save_posts( $posts, $commit->author_email() );
173
+
174
+		$result = $this->app->database()->save_posts( $posts );
175
+
176
+		if ( is_wp_error( $result ) ) {
177
+			return $result;
178
+		}
179
+
180
+		if ( ! empty( $new ) ) {
181
+			$result = $this->app->export()->new_posts( $new );
182
+
183
+			if ( is_wp_error( $result ) ) {
184
+				return $result;
185
+			}
186
+		}
187
+
188
+		return $posts;
189
+	}
190
+
191
+	/**
192
+	 * Checks whether the provided blob should be imported.
193
+	 *
194
+	 * @param Writing_On_GitHub_File_Info $file
195
+	 *
196
+	 * @return bool
197
+	 */
198
+	protected function importable_file( Writing_On_GitHub_File_Info $file ) {
199
+
200
+		// only _pages and _posts
201
+		if ( strncasecmp($file->path, '_pages/', strlen('_pages/') ) != 0 &&
202
+			 strncasecmp($file->path, '_posts/', strlen('_posts/') ) != 0 &&
203
+			 strncasecmp($file->path, 'images/', strlen('images/') ) != 0 ) {
204
+			return false;
205
+		}
206
+
207
+
208
+		// if ( ! $file->has_frontmatter() ) {
209
+		//  return false;
210
+		// }
211
+
212
+		return true;
213
+	}
214
+
215
+	/**
216
+	 * Checks whether the provided blob should be imported.
217
+	 *
218
+	 * @param Writing_On_GitHub_Blob $blob Blob to validate.
219
+	 *
220
+	 * @return bool
221
+	 */
222
+	protected function importable_blob( Writing_On_GitHub_Blob $blob ) {
223
+		// global $wpdb;
224
+
225
+		// // Skip the repo's readme.
226
+		// if ( 'readme' === strtolower( substr( $blob->path(), 0, 6 ) ) ) {
227
+		//  return false;
228
+		// }
229
+
230
+		// // If the blob sha already matches a post, then move on.
231
+		// if ( ! is_wp_error( $this->app->database()->fetch_by_sha( $blob->sha() ) ) ) {
232
+		//  return false;
233
+		// }
234
+
235
+		if ( ! $blob->has_frontmatter() ) {
236
+			return false;
237
+		}
238
+
239
+		return true;
240
+	}
241
+
242
+	protected function importable_raw_file( Writing_On_GitHub_Blob $blob ) {
243
+		if ( $blob->has_frontmatter() ) {
244
+			return false;
245
+		}
246
+
247
+		// only images
248
+		if ( strncasecmp($blob->path(), 'images/', strlen('images/') ) != 0) {
249
+			return false;
250
+		}
251
+
252
+		return true;
253
+	}
254
+
255
+	/**
256
+	 * Imports a raw file content into file system.
257
+	 * @param  Writing_On_GitHub_Blob $blob
258
+	 * @param  bool                   $is_remove
259
+	 */
260
+	protected function import_raw_file( Writing_On_GitHub_Blob $blob, $is_remove ) {
261
+		$arr = wp_upload_dir();
262
+		$path = $arr['basedir'] . '/writing-on-github/' . $blob->path();
263
+		if ( $is_remove ) {
264
+			if ( file_exists($path) ) {
265
+				unlink($path);
266
+			}
267
+		} else {
268
+			$dirname = dirname($path);
269
+			if ( ! file_exists($dirname) ) {
270
+				wp_mkdir_p($dirname);
271
+			}
272
+
273
+			file_put_contents($path, $blob->content());
274
+		}
275
+	}
276
+
277
+	/**
278
+	 * Imports a single blob content into matching post.
279
+	 *
280
+	 * @param Writing_On_GitHub_Blob $blob Blob to transform into a Post.
281
+	 *
282
+	 * @return Writing_On_GitHub_Post|false
283
+	 */
284
+	protected function blob_to_post( Writing_On_GitHub_Blob $blob ) {
285
+		$args = array( 'post_content' => $blob->content_import() );
286
+		$meta = $blob->meta();
287
+
288
+		$id = false;
289
+
290
+		if ( ! empty( $meta ) ) {
291
+			if ( array_key_exists( 'layout', $meta ) ) {
292
+				$args['post_type'] = $meta['layout'];
293
+				unset( $meta['layout'] );
294
+			}
295
+
296
+			if ( array_key_exists( 'published', $meta ) ) {
297
+				$args['post_status'] = true === $meta['published'] ? 'publish' : 'draft';
298
+				unset( $meta['published'] );
299
+			}
300
+
301
+			if ( array_key_exists( 'post_title', $meta ) ) {
302
+				$args['post_title'] = $meta['post_title'];
303
+				unset( $meta['post_title'] );
304
+			}
305
+
306
+			if ( array_key_exists( 'post_name', $meta ) ) {
307
+				$args['post_name'] = $meta['post_name'];
308
+				unset( $meta['post_name'] );
309
+			}
310
+
311
+			if ( array_key_exists( 'ID', $meta ) ) {
312
+				$id = $args['ID'] = $meta['ID'];
313
+				$blob->set_id($id);
314
+				unset( $meta['ID'] );
315
+			}
316
+		}
317
+
318
+		$meta['_wogh_sha'] = $blob->sha();
319
+
320
+		if ( $id ) {
321
+			$old_sha = get_post_meta( $id, '_wogh_sha', true );
322
+			$old_github_path = get_post_meta( $id, '_wogh_github_path', true );
323
+
324
+			// dont save post when has same sha
325
+			if ( $old_sha  && $old_sha == $meta['_wogh_sha'] &&
326
+				 $old_github_path && $old_github_path == $blob->path() ) {
327
+				return false;
328
+			}
329
+		}
330
+
331
+		$post = new Writing_On_GitHub_Post( $args, $this->app->api() );
332
+		$post->set_old_github_path( $blob->path() );
333
+		$post->set_meta( $meta );
334
+		$blob->set_id( $post->id() );
335
+
336
+		return $post;
337
+	}
338 338
 }
Please login to merge, or discard this patch.
Spacing   +78 added lines, -78 removed lines patch added patch discarded remove patch
@@ -22,7 +22,7 @@  discard block
 block discarded – undo
22 22
      *
23 23
      * @param Writing_On_GitHub $app Application container.
24 24
      */
25
-    public function __construct( Writing_On_GitHub $app ) {
25
+    public function __construct(Writing_On_GitHub $app) {
26 26
         $this->app = $app;
27 27
     }
28 28
 
@@ -32,24 +32,24 @@  discard block
 block discarded – undo
32 32
      *
33 33
      * @return string|WP_Error
34 34
      */
35
-    public function payload( Writing_On_GitHub_Payload $payload ) {
35
+    public function payload(Writing_On_GitHub_Payload $payload) {
36 36
 
37
-        $result = $this->app->api()->fetch()->compare( $payload->get_before_commit_id() );
37
+        $result = $this->app->api()->fetch()->compare($payload->get_before_commit_id());
38 38
 
39
-        if ( is_wp_error( $result ) ) {
39
+        if (is_wp_error($result)) {
40 40
             /* @var WP_Error $result */
41 41
             return $result;
42 42
         }
43 43
 
44
-        if ( is_array( $result ) ) {
45
-            $result = $this->import_files( $result );
44
+        if (is_array($result)) {
45
+            $result = $this->import_files($result);
46 46
         }
47 47
 
48
-        if ( is_wp_error( $result ) ) {
48
+        if (is_wp_error($result)) {
49 49
             return $files;
50 50
         }
51 51
 
52
-        return __( 'Payload processed', 'writing-on-github' );
52
+        return __('Payload processed', 'writing-on-github');
53 53
     }
54 54
 
55 55
     /**
@@ -58,23 +58,23 @@  discard block
 block discarded – undo
58 58
      *
59 59
      * @return string|WP_Error
60 60
      */
61
-    protected function import_files( $files ) {
61
+    protected function import_files($files) {
62 62
 
63 63
         $error      = false;
64 64
         $delete_ids = false;
65 65
 
66
-        $result = $this->compare( $files, $delete_ids );
66
+        $result = $this->compare($files, $delete_ids);
67 67
 
68
-        if ( is_wp_error( $result ) ) {
68
+        if (is_wp_error($result)) {
69 69
             return $result;
70 70
         }
71 71
 
72
-        if ( $delete_ids ) {
72
+        if ($delete_ids) {
73 73
             foreach ($delete_ids as $id) {
74
-                $result = $this->app->database()->delete_post( $id );
75
-                if ( is_wp_error( $result ) ) {
74
+                $result = $this->app->database()->delete_post($id);
75
+                if (is_wp_error($result)) {
76 76
                     /* @var WP_Error $result */
77
-                    $error = wogh_append_error( $error, $result );
77
+                    $error = wogh_append_error($error, $result);
78 78
                 }
79 79
             }
80 80
         }
@@ -90,21 +90,21 @@  discard block
 block discarded – undo
90 90
     public function master() {
91 91
         $result = $this->app->api()->fetch()->tree_recursive();
92 92
 
93
-        if ( is_wp_error( $result ) ) {
93
+        if (is_wp_error($result)) {
94 94
             /* @var WP_Error $result */
95 95
             return $result;
96 96
         }
97 97
 
98
-        if ( is_array( $result ) ) {
99
-            $result = $this->import_files( $result );
98
+        if (is_array($result)) {
99
+            $result = $this->import_files($result);
100 100
         }
101 101
 
102
-        if ( is_wp_error( $result ) ) {
102
+        if (is_wp_error($result)) {
103 103
             /* @var WP_Error $result */
104 104
             return $result;
105 105
         }
106 106
 
107
-        return __( 'Payload processed', 'writing-on-github' );
107
+        return __('Payload processed', 'writing-on-github');
108 108
     }
109 109
 
110 110
     /**
@@ -114,8 +114,8 @@  discard block
 block discarded – undo
114 114
      *
115 115
      * @return string|WP_Error
116 116
      */
117
-    protected function compare( $files, &$delete_ids ) {
118
-        if ( is_wp_error( $files ) ) {
117
+    protected function compare($files, &$delete_ids) {
118
+        if (is_wp_error($files)) {
119 119
             /* @var WP_Error $files */
120 120
             return $files;
121 121
         }
@@ -125,62 +125,62 @@  discard block
 block discarded – undo
125 125
 
126 126
         $idsmap = array();
127 127
 
128
-        foreach ( $files as $file ) {
129
-            if ( ! $this->importable_file( $file ) ) {
128
+        foreach ($files as $file) {
129
+            if ( ! $this->importable_file($file)) {
130 130
                 continue;
131 131
             }
132 132
 
133
-            $blob = $this->app->api()->fetch()->blob( $file );
133
+            $blob = $this->app->api()->fetch()->blob($file);
134 134
             // network error ?
135
-            if ( ! $blob instanceof Writing_On_GitHub_Blob ) {
135
+            if ( ! $blob instanceof Writing_On_GitHub_Blob) {
136 136
                 continue;
137 137
             }
138 138
 
139
-            if ( $this->importable_raw_file( $blob ) ) {
140
-                $this->import_raw_file( $blob, $file->status == 'removed' );
139
+            if ($this->importable_raw_file($blob)) {
140
+                $this->import_raw_file($blob, $file->status == 'removed');
141 141
                 continue;
142 142
             }
143 143
 
144
-            if ( ! $this->importable_blob( $blob ) ) {
144
+            if ( ! $this->importable_blob($blob)) {
145 145
                 continue;
146 146
             }
147 147
 
148
-            $post = $this->blob_to_post( $blob );
148
+            $post = $this->blob_to_post($blob);
149 149
 
150
-            if ( $file->status == 'removed' ) {
151
-                if ( $blob->id() ) {
150
+            if ($file->status == 'removed') {
151
+                if ($blob->id()) {
152 152
                     $idsmap[$blob->id()] = true;
153 153
                 }
154
-            } elseif ( $post != false ) {
154
+            } elseif ($post != false) {
155 155
                 $posts[] = $post;
156
-                if ( $post->is_new() ) {
156
+                if ($post->is_new()) {
157 157
                     $new[] = $post;
158 158
                 }
159 159
             }
160 160
         }
161 161
 
162
-        foreach ( $posts as $post ) {
163
-            if ( $post->id() && isset( $idsmap[ $post->id() ] ) ) {
164
-                unset( $idsmap[ $post->id() ] );
162
+        foreach ($posts as $post) {
163
+            if ($post->id() && isset($idsmap[$post->id()])) {
164
+                unset($idsmap[$post->id()]);
165 165
             }
166 166
         }
167 167
         $delete_ids = array();
168
-        foreach ( $idsmap as $id => $value ) {
168
+        foreach ($idsmap as $id => $value) {
169 169
             $delete_ids[] = $id;
170 170
         }
171 171
 
172 172
         // $this->app->database()->save_posts( $posts, $commit->author_email() );
173 173
 
174
-        $result = $this->app->database()->save_posts( $posts );
174
+        $result = $this->app->database()->save_posts($posts);
175 175
 
176
-        if ( is_wp_error( $result ) ) {
176
+        if (is_wp_error($result)) {
177 177
             return $result;
178 178
         }
179 179
 
180
-        if ( ! empty( $new ) ) {
181
-            $result = $this->app->export()->new_posts( $new );
180
+        if ( ! empty($new)) {
181
+            $result = $this->app->export()->new_posts($new);
182 182
 
183
-            if ( is_wp_error( $result ) ) {
183
+            if (is_wp_error($result)) {
184 184
                 return $result;
185 185
             }
186 186
         }
@@ -195,12 +195,12 @@  discard block
 block discarded – undo
195 195
      *
196 196
      * @return bool
197 197
      */
198
-    protected function importable_file( Writing_On_GitHub_File_Info $file ) {
198
+    protected function importable_file(Writing_On_GitHub_File_Info $file) {
199 199
 
200 200
         // only _pages and _posts
201
-        if ( strncasecmp($file->path, '_pages/', strlen('_pages/') ) != 0 &&
202
-             strncasecmp($file->path, '_posts/', strlen('_posts/') ) != 0 &&
203
-             strncasecmp($file->path, 'images/', strlen('images/') ) != 0 ) {
201
+        if (strncasecmp($file->path, '_pages/', strlen('_pages/')) != 0 &&
202
+             strncasecmp($file->path, '_posts/', strlen('_posts/')) != 0 &&
203
+             strncasecmp($file->path, 'images/', strlen('images/')) != 0) {
204 204
             return false;
205 205
         }
206 206
 
@@ -219,7 +219,7 @@  discard block
 block discarded – undo
219 219
      *
220 220
      * @return bool
221 221
      */
222
-    protected function importable_blob( Writing_On_GitHub_Blob $blob ) {
222
+    protected function importable_blob(Writing_On_GitHub_Blob $blob) {
223 223
         // global $wpdb;
224 224
 
225 225
         // // Skip the repo's readme.
@@ -232,20 +232,20 @@  discard block
 block discarded – undo
232 232
         //  return false;
233 233
         // }
234 234
 
235
-        if ( ! $blob->has_frontmatter() ) {
235
+        if ( ! $blob->has_frontmatter()) {
236 236
             return false;
237 237
         }
238 238
 
239 239
         return true;
240 240
     }
241 241
 
242
-    protected function importable_raw_file( Writing_On_GitHub_Blob $blob ) {
243
-        if ( $blob->has_frontmatter() ) {
242
+    protected function importable_raw_file(Writing_On_GitHub_Blob $blob) {
243
+        if ($blob->has_frontmatter()) {
244 244
             return false;
245 245
         }
246 246
 
247 247
         // only images
248
-        if ( strncasecmp($blob->path(), 'images/', strlen('images/') ) != 0) {
248
+        if (strncasecmp($blob->path(), 'images/', strlen('images/')) != 0) {
249 249
             return false;
250 250
         }
251 251
 
@@ -257,16 +257,16 @@  discard block
 block discarded – undo
257 257
      * @param  Writing_On_GitHub_Blob $blob
258 258
      * @param  bool                   $is_remove
259 259
      */
260
-    protected function import_raw_file( Writing_On_GitHub_Blob $blob, $is_remove ) {
260
+    protected function import_raw_file(Writing_On_GitHub_Blob $blob, $is_remove) {
261 261
         $arr = wp_upload_dir();
262 262
         $path = $arr['basedir'] . '/writing-on-github/' . $blob->path();
263
-        if ( $is_remove ) {
264
-            if ( file_exists($path) ) {
263
+        if ($is_remove) {
264
+            if (file_exists($path)) {
265 265
                 unlink($path);
266 266
             }
267 267
         } else {
268 268
             $dirname = dirname($path);
269
-            if ( ! file_exists($dirname) ) {
269
+            if ( ! file_exists($dirname)) {
270 270
                 wp_mkdir_p($dirname);
271 271
             }
272 272
 
@@ -281,57 +281,57 @@  discard block
 block discarded – undo
281 281
      *
282 282
      * @return Writing_On_GitHub_Post|false
283 283
      */
284
-    protected function blob_to_post( Writing_On_GitHub_Blob $blob ) {
285
-        $args = array( 'post_content' => $blob->content_import() );
284
+    protected function blob_to_post(Writing_On_GitHub_Blob $blob) {
285
+        $args = array('post_content' => $blob->content_import());
286 286
         $meta = $blob->meta();
287 287
 
288 288
         $id = false;
289 289
 
290
-        if ( ! empty( $meta ) ) {
291
-            if ( array_key_exists( 'layout', $meta ) ) {
290
+        if ( ! empty($meta)) {
291
+            if (array_key_exists('layout', $meta)) {
292 292
                 $args['post_type'] = $meta['layout'];
293
-                unset( $meta['layout'] );
293
+                unset($meta['layout']);
294 294
             }
295 295
 
296
-            if ( array_key_exists( 'published', $meta ) ) {
296
+            if (array_key_exists('published', $meta)) {
297 297
                 $args['post_status'] = true === $meta['published'] ? 'publish' : 'draft';
298
-                unset( $meta['published'] );
298
+                unset($meta['published']);
299 299
             }
300 300
 
301
-            if ( array_key_exists( 'post_title', $meta ) ) {
301
+            if (array_key_exists('post_title', $meta)) {
302 302
                 $args['post_title'] = $meta['post_title'];
303
-                unset( $meta['post_title'] );
303
+                unset($meta['post_title']);
304 304
             }
305 305
 
306
-            if ( array_key_exists( 'post_name', $meta ) ) {
306
+            if (array_key_exists('post_name', $meta)) {
307 307
                 $args['post_name'] = $meta['post_name'];
308
-                unset( $meta['post_name'] );
308
+                unset($meta['post_name']);
309 309
             }
310 310
 
311
-            if ( array_key_exists( 'ID', $meta ) ) {
311
+            if (array_key_exists('ID', $meta)) {
312 312
                 $id = $args['ID'] = $meta['ID'];
313 313
                 $blob->set_id($id);
314
-                unset( $meta['ID'] );
314
+                unset($meta['ID']);
315 315
             }
316 316
         }
317 317
 
318 318
         $meta['_wogh_sha'] = $blob->sha();
319 319
 
320
-        if ( $id ) {
321
-            $old_sha = get_post_meta( $id, '_wogh_sha', true );
322
-            $old_github_path = get_post_meta( $id, '_wogh_github_path', true );
320
+        if ($id) {
321
+            $old_sha = get_post_meta($id, '_wogh_sha', true);
322
+            $old_github_path = get_post_meta($id, '_wogh_github_path', true);
323 323
 
324 324
             // dont save post when has same sha
325
-            if ( $old_sha  && $old_sha == $meta['_wogh_sha'] &&
326
-                 $old_github_path && $old_github_path == $blob->path() ) {
325
+            if ($old_sha && $old_sha == $meta['_wogh_sha'] &&
326
+                 $old_github_path && $old_github_path == $blob->path()) {
327 327
                 return false;
328 328
             }
329 329
         }
330 330
 
331
-        $post = new Writing_On_GitHub_Post( $args, $this->app->api() );
332
-        $post->set_old_github_path( $blob->path() );
333
-        $post->set_meta( $meta );
334
-        $blob->set_id( $post->id() );
331
+        $post = new Writing_On_GitHub_Post($args, $this->app->api());
332
+        $post->set_old_github_path($blob->path());
333
+        $post->set_meta($meta);
334
+        $blob->set_id($post->id());
335 335
 
336 336
         return $post;
337 337
     }
Please login to merge, or discard this patch.
writing-on-github.php 2 patches
Indentation   +377 added lines, -377 removed lines patch added patch discarded remove patch
@@ -14,391 +14,391 @@
 block discarded – undo
14 14
 // This fixes function duplication during unit testing.
15 15
 $path = dirname( __FILE__ ) . '/vendor/autoload.php';
16 16
 if ( file_exists( $path ) ) {
17
-    require_once( $path );
17
+	require_once( $path );
18 18
 }
19 19
 
20 20
 add_action( 'plugins_loaded', array( new Writing_On_GitHub, 'boot' ) );
21 21
 
22 22
 class Writing_On_GitHub {
23 23
 
24
-    /**
25
-     * Object instance
26
-     * @var self
27
-     */
28
-    public static $instance;
29
-
30
-    /**
31
-     * Language text domain
32
-     * @var string
33
-     */
34
-    public static $text_domain = 'writing-on-github';
35
-
36
-    /**
37
-     * Controller object
38
-     * @var Writing_On_GitHub_Controller
39
-     */
40
-    public $controller;
41
-
42
-    /**
43
-     * Controller object
44
-     * @var Writing_On_GitHub_Admin
45
-     */
46
-    public $admin;
47
-
48
-    /**
49
-     * CLI object.
50
-     *
51
-     * @var Writing_On_GitHub_CLI
52
-     */
53
-    protected $cli;
54
-
55
-    /**
56
-     * Request object.
57
-     *
58
-     * @var Writing_On_GitHub_Request
59
-     */
60
-    protected $request;
61
-
62
-    /**
63
-     * Response object.
64
-     *
65
-     * @var Writing_On_GitHub_Response
66
-     */
67
-    protected $response;
68
-
69
-    /**
70
-     * Api object.
71
-     *
72
-     * @var Writing_On_GitHub_Api
73
-     */
74
-    protected $api;
75
-
76
-    /**
77
-     * Import object.
78
-     *
79
-     * @var Writing_On_GitHub_Import
80
-     */
81
-    protected $import;
82
-
83
-    /**
84
-     * Export object.
85
-     *
86
-     * @var Writing_On_GitHub_Export
87
-     */
88
-    protected $export;
89
-
90
-    /**
91
-     * Semaphore object.
92
-     *
93
-     * @var Writing_On_GitHub_Semaphore
94
-     */
95
-    protected $semaphore;
96
-
97
-    /**
98
-     * Database object.
99
-     *
100
-     * @var Writing_On_GitHub_Database
101
-     */
102
-    protected $database;
103
-
104
-    /**
105
-     * Called at load time, hooks into WP core
106
-     */
107
-    public function __construct() {
108
-        self::$instance = $this;
109
-
110
-        if ( is_admin() ) {
111
-            $this->admin = new Writing_On_GitHub_Admin;
112
-        }
113
-
114
-        $this->controller = new Writing_On_GitHub_Controller( $this );
115
-
116
-        if ( defined( 'WP_CLI' ) && WP_CLI ) {
117
-            WP_CLI::add_command( 'wogh', $this->cli() );
118
-        }
119
-    }
120
-
121
-    /**
122
-     * Attaches the plugin's hooks into WordPress.
123
-     */
124
-    public function boot() {
125
-        register_activation_hook( __FILE__, array( $this, 'activate' ) );
126
-        add_action( 'admin_notices', array( $this, 'activation_notice' ) );
127
-
128
-        add_action( 'init', array( $this, 'l10n' ) );
129
-
130
-        // Controller actions.
131
-        add_action( 'save_post', array( $this->controller, 'export_post' ) );
132
-        add_action( 'delete_post', array( $this->controller, 'delete_post' ) );
133
-        add_action( 'wp_ajax_nopriv_wogh_push_request', array( $this->controller, 'pull_posts' ) );
134
-        add_action( 'wogh_export', array( $this->controller, 'export_all' ), 10, 2 );
135
-        add_action( 'wogh_import', array( $this->controller, 'import_master' ), 10, 1 );
136
-        add_filter( 'get_edit_post_link', array( $this, 'edit_post_link' ), 10, 3 );
137
-
138
-        // add_filter( 'wogh_post_meta', array( $this, 'ignore_post_meta' ), 10, 1 );
139
-        // add_filter( 'wogh_pre_import_meta', array( $this, 'ignore_post_meta' ), 10, 1 );
140
-        add_filter( 'the_content', array( $this, 'the_content' ) );
141
-
142
-        do_action( 'wogh_boot', $this );
143
-    }
144
-
145
-    public function edit_post_link($link, $postID, $context) {
146
-        if ( ! wp_is_post_revision( $postID ) ) {
147
-            $post = new Writing_On_GitHub_Post( $postID, Writing_On_GitHub::$instance->api() );
148
-            if ( $post->is_on_github() ) {
149
-                return $post->github_edit_url();
150
-            }
151
-        }
152
-
153
-        return $link;
154
-    }
155
-
156
-    public function ignore_post_meta($meta) {
157
-        $ignore_meta_keys = get_option('wogh_ignore_metas');
158
-        if (empty($ignore_meta_keys)) {
159
-            return $meta;
160
-        }
161
-
162
-        $keys = preg_split("/\\r\\n|\\r|\\n/", $ignore_meta_keys);
163
-        if (empty($keys)) {
164
-            return $meta;
165
-        }
166
-        foreach ($keys as $key => $value) {
167
-            $keys[$key] = trim($value);
168
-        }
169
-
170
-        foreach ($meta as $key => $value) {
171
-            if (in_array($key, $keys)) {
172
-                unset($meta[$key]);
173
-            }
174
-        }
175
-
176
-        return $meta;
177
-    }
178
-
179
-    public function the_content($content) {
180
-        $arr = wp_upload_dir();
181
-        $baseurl = $arr['baseurl'] . '/writing-on-github';
182
-
183
-        $content = preg_replace_callback(
184
-            '/(<img [^>]*?src=[\'"])\s*(\/images\/[^\s#]\S+)\s*([\'"][^>]*?>)/',
185
-            function($matchs) use ($baseurl) {
186
-                $url = $baseurl . $matchs[2];
187
-                return "${matchs[1]}$url${matchs[3]}";
188
-            },
189
-            $content
190
-        );
191
-
192
-        $content = preg_replace_callback(
193
-            '/(<a [^>]*?href=[\'"])\s*(\/images\/[^\s#]\S+)\s*([\'"][^>]*?>)/',
194
-            function($matchs) use ($baseurl) {
195
-                $url = $baseurl . $matchs[2];
196
-                return "${matchs[1]}$url${matchs[3]}";
197
-            },
198
-            $content
199
-        );
200
-        return $content;
201
-    }
202
-
203
-    /**
204
-     * Init i18n files
205
-     */
206
-    public function l10n() {
207
-        load_plugin_textdomain( self::$text_domain );
208
-    }
209
-
210
-    /**
211
-     * Sets and kicks off the export cronjob
212
-     */
213
-    public function start_export( $force = false ) {
214
-        $this->start_cron( 'export', $force );
215
-    }
216
-
217
-    /**
218
-     * Sets and kicks off the import cronjob
219
-     */
220
-    public function start_import() {
221
-        $this->start_cron( 'import' );
222
-    }
223
-
224
-    /**
225
-     * Enables the admin notice on initial activation
226
-     */
227
-    public function activate() {
228
-        if ( 'yes' !== get_option( '_wogh_fully_exported' ) ) {
229
-            set_transient( '_wogh_activated', 'yes' );
230
-        }
231
-    }
232
-
233
-    /**
234
-     * Displays the activation admin notice
235
-     */
236
-    public function activation_notice() {
237
-        if ( ! get_transient( '_wogh_activated' ) ) {
238
-            return;
239
-        }
240
-
241
-        delete_transient( '_wogh_activated' );
242
-
243
-        ?><div class="updated">
24
+	/**
25
+	 * Object instance
26
+	 * @var self
27
+	 */
28
+	public static $instance;
29
+
30
+	/**
31
+	 * Language text domain
32
+	 * @var string
33
+	 */
34
+	public static $text_domain = 'writing-on-github';
35
+
36
+	/**
37
+	 * Controller object
38
+	 * @var Writing_On_GitHub_Controller
39
+	 */
40
+	public $controller;
41
+
42
+	/**
43
+	 * Controller object
44
+	 * @var Writing_On_GitHub_Admin
45
+	 */
46
+	public $admin;
47
+
48
+	/**
49
+	 * CLI object.
50
+	 *
51
+	 * @var Writing_On_GitHub_CLI
52
+	 */
53
+	protected $cli;
54
+
55
+	/**
56
+	 * Request object.
57
+	 *
58
+	 * @var Writing_On_GitHub_Request
59
+	 */
60
+	protected $request;
61
+
62
+	/**
63
+	 * Response object.
64
+	 *
65
+	 * @var Writing_On_GitHub_Response
66
+	 */
67
+	protected $response;
68
+
69
+	/**
70
+	 * Api object.
71
+	 *
72
+	 * @var Writing_On_GitHub_Api
73
+	 */
74
+	protected $api;
75
+
76
+	/**
77
+	 * Import object.
78
+	 *
79
+	 * @var Writing_On_GitHub_Import
80
+	 */
81
+	protected $import;
82
+
83
+	/**
84
+	 * Export object.
85
+	 *
86
+	 * @var Writing_On_GitHub_Export
87
+	 */
88
+	protected $export;
89
+
90
+	/**
91
+	 * Semaphore object.
92
+	 *
93
+	 * @var Writing_On_GitHub_Semaphore
94
+	 */
95
+	protected $semaphore;
96
+
97
+	/**
98
+	 * Database object.
99
+	 *
100
+	 * @var Writing_On_GitHub_Database
101
+	 */
102
+	protected $database;
103
+
104
+	/**
105
+	 * Called at load time, hooks into WP core
106
+	 */
107
+	public function __construct() {
108
+		self::$instance = $this;
109
+
110
+		if ( is_admin() ) {
111
+			$this->admin = new Writing_On_GitHub_Admin;
112
+		}
113
+
114
+		$this->controller = new Writing_On_GitHub_Controller( $this );
115
+
116
+		if ( defined( 'WP_CLI' ) && WP_CLI ) {
117
+			WP_CLI::add_command( 'wogh', $this->cli() );
118
+		}
119
+	}
120
+
121
+	/**
122
+	 * Attaches the plugin's hooks into WordPress.
123
+	 */
124
+	public function boot() {
125
+		register_activation_hook( __FILE__, array( $this, 'activate' ) );
126
+		add_action( 'admin_notices', array( $this, 'activation_notice' ) );
127
+
128
+		add_action( 'init', array( $this, 'l10n' ) );
129
+
130
+		// Controller actions.
131
+		add_action( 'save_post', array( $this->controller, 'export_post' ) );
132
+		add_action( 'delete_post', array( $this->controller, 'delete_post' ) );
133
+		add_action( 'wp_ajax_nopriv_wogh_push_request', array( $this->controller, 'pull_posts' ) );
134
+		add_action( 'wogh_export', array( $this->controller, 'export_all' ), 10, 2 );
135
+		add_action( 'wogh_import', array( $this->controller, 'import_master' ), 10, 1 );
136
+		add_filter( 'get_edit_post_link', array( $this, 'edit_post_link' ), 10, 3 );
137
+
138
+		// add_filter( 'wogh_post_meta', array( $this, 'ignore_post_meta' ), 10, 1 );
139
+		// add_filter( 'wogh_pre_import_meta', array( $this, 'ignore_post_meta' ), 10, 1 );
140
+		add_filter( 'the_content', array( $this, 'the_content' ) );
141
+
142
+		do_action( 'wogh_boot', $this );
143
+	}
144
+
145
+	public function edit_post_link($link, $postID, $context) {
146
+		if ( ! wp_is_post_revision( $postID ) ) {
147
+			$post = new Writing_On_GitHub_Post( $postID, Writing_On_GitHub::$instance->api() );
148
+			if ( $post->is_on_github() ) {
149
+				return $post->github_edit_url();
150
+			}
151
+		}
152
+
153
+		return $link;
154
+	}
155
+
156
+	public function ignore_post_meta($meta) {
157
+		$ignore_meta_keys = get_option('wogh_ignore_metas');
158
+		if (empty($ignore_meta_keys)) {
159
+			return $meta;
160
+		}
161
+
162
+		$keys = preg_split("/\\r\\n|\\r|\\n/", $ignore_meta_keys);
163
+		if (empty($keys)) {
164
+			return $meta;
165
+		}
166
+		foreach ($keys as $key => $value) {
167
+			$keys[$key] = trim($value);
168
+		}
169
+
170
+		foreach ($meta as $key => $value) {
171
+			if (in_array($key, $keys)) {
172
+				unset($meta[$key]);
173
+			}
174
+		}
175
+
176
+		return $meta;
177
+	}
178
+
179
+	public function the_content($content) {
180
+		$arr = wp_upload_dir();
181
+		$baseurl = $arr['baseurl'] . '/writing-on-github';
182
+
183
+		$content = preg_replace_callback(
184
+			'/(<img [^>]*?src=[\'"])\s*(\/images\/[^\s#]\S+)\s*([\'"][^>]*?>)/',
185
+			function($matchs) use ($baseurl) {
186
+				$url = $baseurl . $matchs[2];
187
+				return "${matchs[1]}$url${matchs[3]}";
188
+			},
189
+			$content
190
+		);
191
+
192
+		$content = preg_replace_callback(
193
+			'/(<a [^>]*?href=[\'"])\s*(\/images\/[^\s#]\S+)\s*([\'"][^>]*?>)/',
194
+			function($matchs) use ($baseurl) {
195
+				$url = $baseurl . $matchs[2];
196
+				return "${matchs[1]}$url${matchs[3]}";
197
+			},
198
+			$content
199
+		);
200
+		return $content;
201
+	}
202
+
203
+	/**
204
+	 * Init i18n files
205
+	 */
206
+	public function l10n() {
207
+		load_plugin_textdomain( self::$text_domain );
208
+	}
209
+
210
+	/**
211
+	 * Sets and kicks off the export cronjob
212
+	 */
213
+	public function start_export( $force = false ) {
214
+		$this->start_cron( 'export', $force );
215
+	}
216
+
217
+	/**
218
+	 * Sets and kicks off the import cronjob
219
+	 */
220
+	public function start_import() {
221
+		$this->start_cron( 'import' );
222
+	}
223
+
224
+	/**
225
+	 * Enables the admin notice on initial activation
226
+	 */
227
+	public function activate() {
228
+		if ( 'yes' !== get_option( '_wogh_fully_exported' ) ) {
229
+			set_transient( '_wogh_activated', 'yes' );
230
+		}
231
+	}
232
+
233
+	/**
234
+	 * Displays the activation admin notice
235
+	 */
236
+	public function activation_notice() {
237
+		if ( ! get_transient( '_wogh_activated' ) ) {
238
+			return;
239
+		}
240
+
241
+		delete_transient( '_wogh_activated' );
242
+
243
+		?><div class="updated">
244 244
             <p>
245 245
                 <?php
246
-                    printf(
247
-                        __( 'To set up your site to sync with GitHub, update your <a href="%s">settings</a> and click "Export to GitHub."', 'writing-on-github' ),
248
-                        admin_url( 'options-general.php?page=' . static::$text_domain)
249
-                    );
250
-                ?>
246
+					printf(
247
+						__( 'To set up your site to sync with GitHub, update your <a href="%s">settings</a> and click "Export to GitHub."', 'writing-on-github' ),
248
+						admin_url( 'options-general.php?page=' . static::$text_domain)
249
+					);
250
+				?>
251 251
             </p>
252 252
         </div><?php
253
-    }
254
-
255
-    /**
256
-     * Get the Controller object.
257
-     *
258
-     * @return Writing_On_GitHub_Controller
259
-     */
260
-    public function controller() {
261
-        return $this->controller;
262
-    }
263
-
264
-    /**
265
-     * Lazy-load the CLI object.
266
-     *
267
-     * @return Writing_On_GitHub_CLI
268
-     */
269
-    public function cli() {
270
-        if ( ! $this->cli ) {
271
-            $this->cli = new Writing_On_GitHub_CLI;
272
-        }
273
-
274
-        return $this->cli;
275
-    }
276
-
277
-    /**
278
-     * Lazy-load the Request object.
279
-     *
280
-     * @return Writing_On_GitHub_Request
281
-     */
282
-    public function request() {
283
-        if ( ! $this->request ) {
284
-            $this->request = new Writing_On_GitHub_Request( $this );
285
-        }
286
-
287
-        return $this->request;
288
-    }
289
-
290
-    /**
291
-     * Lazy-load the Response object.
292
-     *
293
-     * @return Writing_On_GitHub_Response
294
-     */
295
-    public function response() {
296
-        if ( ! $this->response ) {
297
-            $this->response = new Writing_On_GitHub_Response( $this );
298
-        }
299
-
300
-        return $this->response;
301
-    }
302
-
303
-    /**
304
-     * Lazy-load the Api object.
305
-     *
306
-     * @return Writing_On_GitHub_Api
307
-     */
308
-    public function api() {
309
-        if ( ! $this->api ) {
310
-            $this->api = new Writing_On_GitHub_Api( $this );
311
-        }
312
-
313
-        return $this->api;
314
-    }
315
-
316
-    /**
317
-     * Lazy-load the Import object.
318
-     *
319
-     * @return Writing_On_GitHub_Import
320
-     */
321
-    public function import() {
322
-        if ( ! $this->import ) {
323
-            $this->import = new Writing_On_GitHub_Import( $this );
324
-        }
325
-
326
-        return $this->import;
327
-    }
328
-
329
-    /**
330
-     * Lazy-load the Export object.
331
-     *
332
-     * @return Writing_On_GitHub_Export
333
-     */
334
-    public function export() {
335
-        if ( ! $this->export ) {
336
-            $this->export = new Writing_On_GitHub_Export( $this );
337
-        }
338
-
339
-        return $this->export;
340
-    }
341
-
342
-    /**
343
-     * Lazy-load the Semaphore object.
344
-     *
345
-     * @return Writing_On_GitHub_Semaphore
346
-     */
347
-    public function semaphore() {
348
-        if ( ! $this->semaphore ) {
349
-            $this->semaphore = new Writing_On_GitHub_Semaphore;
350
-        }
351
-
352
-        return $this->semaphore;
353
-    }
354
-
355
-    /**
356
-     * Lazy-load the Database object.
357
-     *
358
-     * @return Writing_On_GitHub_Database
359
-     */
360
-    public function database() {
361
-        if ( ! $this->database ) {
362
-            $this->database = new Writing_On_GitHub_Database( $this );
363
-        }
364
-
365
-        return $this->database;
366
-    }
367
-
368
-    /**
369
-     * Print to WP_CLI if in CLI environment or
370
-     * write to debug.log if WP_DEBUG is enabled
371
-     * @source http://www.stumiller.me/sending-output-to-the-wordpress-debug-log/
372
-     *
373
-     * @param mixed $msg
374
-     * @param string $write
375
-     */
376
-    public static function write_log( $msg, $write = 'line' ) {
377
-        if ( defined( 'WP_CLI' ) && WP_CLI ) {
378
-            if ( is_array( $msg ) || is_object( $msg ) ) {
379
-                WP_CLI::print_value( $msg );
380
-            } else {
381
-                WP_CLI::$write( $msg );
382
-            }
383
-        } elseif ( true === WP_DEBUG ) {
384
-            if ( is_array( $msg ) || is_object( $msg ) ) {
385
-                error_log( print_r( $msg, true ) );
386
-            } else {
387
-                error_log( $msg );
388
-            }
389
-        }
390
-    }
391
-
392
-    /**
393
-     * Kicks of an import or export cronjob.
394
-     *
395
-     * @param bool   $force
396
-     * @param string $type
397
-     */
398
-    protected function start_cron( $type, $force = false ) {
399
-        update_option( '_wogh_' . $type . '_started', 'yes' );
400
-        $user_id = get_current_user_id();
401
-        wp_schedule_single_event( time(), 'wogh_' . $type . '', array( $user_id, $force ) );
402
-        spawn_cron();
403
-    }
253
+	}
254
+
255
+	/**
256
+	 * Get the Controller object.
257
+	 *
258
+	 * @return Writing_On_GitHub_Controller
259
+	 */
260
+	public function controller() {
261
+		return $this->controller;
262
+	}
263
+
264
+	/**
265
+	 * Lazy-load the CLI object.
266
+	 *
267
+	 * @return Writing_On_GitHub_CLI
268
+	 */
269
+	public function cli() {
270
+		if ( ! $this->cli ) {
271
+			$this->cli = new Writing_On_GitHub_CLI;
272
+		}
273
+
274
+		return $this->cli;
275
+	}
276
+
277
+	/**
278
+	 * Lazy-load the Request object.
279
+	 *
280
+	 * @return Writing_On_GitHub_Request
281
+	 */
282
+	public function request() {
283
+		if ( ! $this->request ) {
284
+			$this->request = new Writing_On_GitHub_Request( $this );
285
+		}
286
+
287
+		return $this->request;
288
+	}
289
+
290
+	/**
291
+	 * Lazy-load the Response object.
292
+	 *
293
+	 * @return Writing_On_GitHub_Response
294
+	 */
295
+	public function response() {
296
+		if ( ! $this->response ) {
297
+			$this->response = new Writing_On_GitHub_Response( $this );
298
+		}
299
+
300
+		return $this->response;
301
+	}
302
+
303
+	/**
304
+	 * Lazy-load the Api object.
305
+	 *
306
+	 * @return Writing_On_GitHub_Api
307
+	 */
308
+	public function api() {
309
+		if ( ! $this->api ) {
310
+			$this->api = new Writing_On_GitHub_Api( $this );
311
+		}
312
+
313
+		return $this->api;
314
+	}
315
+
316
+	/**
317
+	 * Lazy-load the Import object.
318
+	 *
319
+	 * @return Writing_On_GitHub_Import
320
+	 */
321
+	public function import() {
322
+		if ( ! $this->import ) {
323
+			$this->import = new Writing_On_GitHub_Import( $this );
324
+		}
325
+
326
+		return $this->import;
327
+	}
328
+
329
+	/**
330
+	 * Lazy-load the Export object.
331
+	 *
332
+	 * @return Writing_On_GitHub_Export
333
+	 */
334
+	public function export() {
335
+		if ( ! $this->export ) {
336
+			$this->export = new Writing_On_GitHub_Export( $this );
337
+		}
338
+
339
+		return $this->export;
340
+	}
341
+
342
+	/**
343
+	 * Lazy-load the Semaphore object.
344
+	 *
345
+	 * @return Writing_On_GitHub_Semaphore
346
+	 */
347
+	public function semaphore() {
348
+		if ( ! $this->semaphore ) {
349
+			$this->semaphore = new Writing_On_GitHub_Semaphore;
350
+		}
351
+
352
+		return $this->semaphore;
353
+	}
354
+
355
+	/**
356
+	 * Lazy-load the Database object.
357
+	 *
358
+	 * @return Writing_On_GitHub_Database
359
+	 */
360
+	public function database() {
361
+		if ( ! $this->database ) {
362
+			$this->database = new Writing_On_GitHub_Database( $this );
363
+		}
364
+
365
+		return $this->database;
366
+	}
367
+
368
+	/**
369
+	 * Print to WP_CLI if in CLI environment or
370
+	 * write to debug.log if WP_DEBUG is enabled
371
+	 * @source http://www.stumiller.me/sending-output-to-the-wordpress-debug-log/
372
+	 *
373
+	 * @param mixed $msg
374
+	 * @param string $write
375
+	 */
376
+	public static function write_log( $msg, $write = 'line' ) {
377
+		if ( defined( 'WP_CLI' ) && WP_CLI ) {
378
+			if ( is_array( $msg ) || is_object( $msg ) ) {
379
+				WP_CLI::print_value( $msg );
380
+			} else {
381
+				WP_CLI::$write( $msg );
382
+			}
383
+		} elseif ( true === WP_DEBUG ) {
384
+			if ( is_array( $msg ) || is_object( $msg ) ) {
385
+				error_log( print_r( $msg, true ) );
386
+			} else {
387
+				error_log( $msg );
388
+			}
389
+		}
390
+	}
391
+
392
+	/**
393
+	 * Kicks of an import or export cronjob.
394
+	 *
395
+	 * @param bool   $force
396
+	 * @param string $type
397
+	 */
398
+	protected function start_cron( $type, $force = false ) {
399
+		update_option( '_wogh_' . $type . '_started', 'yes' );
400
+		$user_id = get_current_user_id();
401
+		wp_schedule_single_event( time(), 'wogh_' . $type . '', array( $user_id, $force ) );
402
+		spawn_cron();
403
+	}
404 404
 }
Please login to merge, or discard this patch.
Spacing   +58 added lines, -58 removed lines patch added patch discarded remove patch
@@ -12,12 +12,12 @@  discard block
 block discarded – undo
12 12
 
13 13
 // If the functions have already been autoloaded, don't reload.
14 14
 // This fixes function duplication during unit testing.
15
-$path = dirname( __FILE__ ) . '/vendor/autoload.php';
16
-if ( file_exists( $path ) ) {
17
-    require_once( $path );
15
+$path = dirname(__FILE__) . '/vendor/autoload.php';
16
+if (file_exists($path)) {
17
+    require_once($path);
18 18
 }
19 19
 
20
-add_action( 'plugins_loaded', array( new Writing_On_GitHub, 'boot' ) );
20
+add_action('plugins_loaded', array(new Writing_On_GitHub, 'boot'));
21 21
 
22 22
 class Writing_On_GitHub {
23 23
 
@@ -107,14 +107,14 @@  discard block
 block discarded – undo
107 107
     public function __construct() {
108 108
         self::$instance = $this;
109 109
 
110
-        if ( is_admin() ) {
110
+        if (is_admin()) {
111 111
             $this->admin = new Writing_On_GitHub_Admin;
112 112
         }
113 113
 
114
-        $this->controller = new Writing_On_GitHub_Controller( $this );
114
+        $this->controller = new Writing_On_GitHub_Controller($this);
115 115
 
116
-        if ( defined( 'WP_CLI' ) && WP_CLI ) {
117
-            WP_CLI::add_command( 'wogh', $this->cli() );
116
+        if (defined('WP_CLI') && WP_CLI) {
117
+            WP_CLI::add_command('wogh', $this->cli());
118 118
         }
119 119
     }
120 120
 
@@ -122,30 +122,30 @@  discard block
 block discarded – undo
122 122
      * Attaches the plugin's hooks into WordPress.
123 123
      */
124 124
     public function boot() {
125
-        register_activation_hook( __FILE__, array( $this, 'activate' ) );
126
-        add_action( 'admin_notices', array( $this, 'activation_notice' ) );
125
+        register_activation_hook(__FILE__, array($this, 'activate'));
126
+        add_action('admin_notices', array($this, 'activation_notice'));
127 127
 
128
-        add_action( 'init', array( $this, 'l10n' ) );
128
+        add_action('init', array($this, 'l10n'));
129 129
 
130 130
         // Controller actions.
131
-        add_action( 'save_post', array( $this->controller, 'export_post' ) );
132
-        add_action( 'delete_post', array( $this->controller, 'delete_post' ) );
133
-        add_action( 'wp_ajax_nopriv_wogh_push_request', array( $this->controller, 'pull_posts' ) );
134
-        add_action( 'wogh_export', array( $this->controller, 'export_all' ), 10, 2 );
135
-        add_action( 'wogh_import', array( $this->controller, 'import_master' ), 10, 1 );
136
-        add_filter( 'get_edit_post_link', array( $this, 'edit_post_link' ), 10, 3 );
131
+        add_action('save_post', array($this->controller, 'export_post'));
132
+        add_action('delete_post', array($this->controller, 'delete_post'));
133
+        add_action('wp_ajax_nopriv_wogh_push_request', array($this->controller, 'pull_posts'));
134
+        add_action('wogh_export', array($this->controller, 'export_all'), 10, 2);
135
+        add_action('wogh_import', array($this->controller, 'import_master'), 10, 1);
136
+        add_filter('get_edit_post_link', array($this, 'edit_post_link'), 10, 3);
137 137
 
138 138
         // add_filter( 'wogh_post_meta', array( $this, 'ignore_post_meta' ), 10, 1 );
139 139
         // add_filter( 'wogh_pre_import_meta', array( $this, 'ignore_post_meta' ), 10, 1 );
140
-        add_filter( 'the_content', array( $this, 'the_content' ) );
140
+        add_filter('the_content', array($this, 'the_content'));
141 141
 
142
-        do_action( 'wogh_boot', $this );
142
+        do_action('wogh_boot', $this);
143 143
     }
144 144
 
145 145
     public function edit_post_link($link, $postID, $context) {
146
-        if ( ! wp_is_post_revision( $postID ) ) {
147
-            $post = new Writing_On_GitHub_Post( $postID, Writing_On_GitHub::$instance->api() );
148
-            if ( $post->is_on_github() ) {
146
+        if ( ! wp_is_post_revision($postID)) {
147
+            $post = new Writing_On_GitHub_Post($postID, Writing_On_GitHub::$instance->api());
148
+            if ($post->is_on_github()) {
149 149
                 return $post->github_edit_url();
150 150
             }
151 151
         }
@@ -204,29 +204,29 @@  discard block
 block discarded – undo
204 204
      * Init i18n files
205 205
      */
206 206
     public function l10n() {
207
-        load_plugin_textdomain( self::$text_domain );
207
+        load_plugin_textdomain(self::$text_domain);
208 208
     }
209 209
 
210 210
     /**
211 211
      * Sets and kicks off the export cronjob
212 212
      */
213
-    public function start_export( $force = false ) {
214
-        $this->start_cron( 'export', $force );
213
+    public function start_export($force = false) {
214
+        $this->start_cron('export', $force);
215 215
     }
216 216
 
217 217
     /**
218 218
      * Sets and kicks off the import cronjob
219 219
      */
220 220
     public function start_import() {
221
-        $this->start_cron( 'import' );
221
+        $this->start_cron('import');
222 222
     }
223 223
 
224 224
     /**
225 225
      * Enables the admin notice on initial activation
226 226
      */
227 227
     public function activate() {
228
-        if ( 'yes' !== get_option( '_wogh_fully_exported' ) ) {
229
-            set_transient( '_wogh_activated', 'yes' );
228
+        if ('yes' !== get_option('_wogh_fully_exported')) {
229
+            set_transient('_wogh_activated', 'yes');
230 230
         }
231 231
     }
232 232
 
@@ -234,18 +234,18 @@  discard block
 block discarded – undo
234 234
      * Displays the activation admin notice
235 235
      */
236 236
     public function activation_notice() {
237
-        if ( ! get_transient( '_wogh_activated' ) ) {
237
+        if ( ! get_transient('_wogh_activated')) {
238 238
             return;
239 239
         }
240 240
 
241
-        delete_transient( '_wogh_activated' );
241
+        delete_transient('_wogh_activated');
242 242
 
243 243
         ?><div class="updated">
244 244
             <p>
245 245
                 <?php
246 246
                     printf(
247
-                        __( 'To set up your site to sync with GitHub, update your <a href="%s">settings</a> and click "Export to GitHub."', 'writing-on-github' ),
248
-                        admin_url( 'options-general.php?page=' . static::$text_domain)
247
+                        __('To set up your site to sync with GitHub, update your <a href="%s">settings</a> and click "Export to GitHub."', 'writing-on-github'),
248
+                        admin_url('options-general.php?page=' . static::$text_domain)
249 249
                     );
250 250
                 ?>
251 251
             </p>
@@ -267,7 +267,7 @@  discard block
 block discarded – undo
267 267
      * @return Writing_On_GitHub_CLI
268 268
      */
269 269
     public function cli() {
270
-        if ( ! $this->cli ) {
270
+        if ( ! $this->cli) {
271 271
             $this->cli = new Writing_On_GitHub_CLI;
272 272
         }
273 273
 
@@ -280,8 +280,8 @@  discard block
 block discarded – undo
280 280
      * @return Writing_On_GitHub_Request
281 281
      */
282 282
     public function request() {
283
-        if ( ! $this->request ) {
284
-            $this->request = new Writing_On_GitHub_Request( $this );
283
+        if ( ! $this->request) {
284
+            $this->request = new Writing_On_GitHub_Request($this);
285 285
         }
286 286
 
287 287
         return $this->request;
@@ -293,8 +293,8 @@  discard block
 block discarded – undo
293 293
      * @return Writing_On_GitHub_Response
294 294
      */
295 295
     public function response() {
296
-        if ( ! $this->response ) {
297
-            $this->response = new Writing_On_GitHub_Response( $this );
296
+        if ( ! $this->response) {
297
+            $this->response = new Writing_On_GitHub_Response($this);
298 298
         }
299 299
 
300 300
         return $this->response;
@@ -306,8 +306,8 @@  discard block
 block discarded – undo
306 306
      * @return Writing_On_GitHub_Api
307 307
      */
308 308
     public function api() {
309
-        if ( ! $this->api ) {
310
-            $this->api = new Writing_On_GitHub_Api( $this );
309
+        if ( ! $this->api) {
310
+            $this->api = new Writing_On_GitHub_Api($this);
311 311
         }
312 312
 
313 313
         return $this->api;
@@ -319,8 +319,8 @@  discard block
 block discarded – undo
319 319
      * @return Writing_On_GitHub_Import
320 320
      */
321 321
     public function import() {
322
-        if ( ! $this->import ) {
323
-            $this->import = new Writing_On_GitHub_Import( $this );
322
+        if ( ! $this->import) {
323
+            $this->import = new Writing_On_GitHub_Import($this);
324 324
         }
325 325
 
326 326
         return $this->import;
@@ -332,8 +332,8 @@  discard block
 block discarded – undo
332 332
      * @return Writing_On_GitHub_Export
333 333
      */
334 334
     public function export() {
335
-        if ( ! $this->export ) {
336
-            $this->export = new Writing_On_GitHub_Export( $this );
335
+        if ( ! $this->export) {
336
+            $this->export = new Writing_On_GitHub_Export($this);
337 337
         }
338 338
 
339 339
         return $this->export;
@@ -345,7 +345,7 @@  discard block
 block discarded – undo
345 345
      * @return Writing_On_GitHub_Semaphore
346 346
      */
347 347
     public function semaphore() {
348
-        if ( ! $this->semaphore ) {
348
+        if ( ! $this->semaphore) {
349 349
             $this->semaphore = new Writing_On_GitHub_Semaphore;
350 350
         }
351 351
 
@@ -358,8 +358,8 @@  discard block
 block discarded – undo
358 358
      * @return Writing_On_GitHub_Database
359 359
      */
360 360
     public function database() {
361
-        if ( ! $this->database ) {
362
-            $this->database = new Writing_On_GitHub_Database( $this );
361
+        if ( ! $this->database) {
362
+            $this->database = new Writing_On_GitHub_Database($this);
363 363
         }
364 364
 
365 365
         return $this->database;
@@ -373,18 +373,18 @@  discard block
 block discarded – undo
373 373
      * @param mixed $msg
374 374
      * @param string $write
375 375
      */
376
-    public static function write_log( $msg, $write = 'line' ) {
377
-        if ( defined( 'WP_CLI' ) && WP_CLI ) {
378
-            if ( is_array( $msg ) || is_object( $msg ) ) {
379
-                WP_CLI::print_value( $msg );
376
+    public static function write_log($msg, $write = 'line') {
377
+        if (defined('WP_CLI') && WP_CLI) {
378
+            if (is_array($msg) || is_object($msg)) {
379
+                WP_CLI::print_value($msg);
380 380
             } else {
381
-                WP_CLI::$write( $msg );
381
+                WP_CLI::$write($msg);
382 382
             }
383
-        } elseif ( true === WP_DEBUG ) {
384
-            if ( is_array( $msg ) || is_object( $msg ) ) {
385
-                error_log( print_r( $msg, true ) );
383
+        } elseif (true === WP_DEBUG) {
384
+            if (is_array($msg) || is_object($msg)) {
385
+                error_log(print_r($msg, true));
386 386
             } else {
387
-                error_log( $msg );
387
+                error_log($msg);
388 388
             }
389 389
         }
390 390
     }
@@ -395,10 +395,10 @@  discard block
 block discarded – undo
395 395
      * @param bool   $force
396 396
      * @param string $type
397 397
      */
398
-    protected function start_cron( $type, $force = false ) {
399
-        update_option( '_wogh_' . $type . '_started', 'yes' );
398
+    protected function start_cron($type, $force = false) {
399
+        update_option('_wogh_' . $type . '_started', 'yes');
400 400
         $user_id = get_current_user_id();
401
-        wp_schedule_single_event( time(), 'wogh_' . $type . '', array( $user_id, $force ) );
401
+        wp_schedule_single_event(time(), 'wogh_' . $type . '', array($user_id, $force));
402 402
         spawn_cron();
403 403
     }
404 404
 }
Please login to merge, or discard this patch.