Passed
Push — master ( 9a56a9...944433 )
by litefeel
04:14
created
lib/import.php 2 patches
Indentation   +327 added lines, -327 removed lines patch added patch discarded remove patch
@@ -10,331 +10,331 @@
 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
-     * @param  boolean $force
59
-     *
60
-     * @return true|WP_Error
61
-     */
62
-    protected function import_files( $files, $force = false ) {
63
-
64
-        $error = true;
65
-
66
-        foreach ( $files as $file ) {
67
-            if ( ! $this->importable_file( $file ) ) {
68
-                continue;
69
-            }
70
-
71
-            $blob = $this->app->api()->fetch()->blob( $file );
72
-            // network error ?
73
-            if ( ! $blob instanceof Writing_On_GitHub_Blob ) {
74
-                continue;
75
-            }
76
-
77
-            $is_remove = 'removed' == $file->status;
78
-
79
-            $result = false;
80
-            if ( $this->importable_raw_file( $blob ) ) {
81
-                $result = $this->import_raw_file( $blob, $is_remove );
82
-            } elseif ( $this->importable_post( $blob ) ) {
83
-                if ( $is_remove ) {
84
-                    $result = $this->delete_post( $blob );
85
-                } else {
86
-                    $result = $this->import_post( $blob, $force );
87
-                }
88
-            }
89
-
90
-            if ( is_wp_error( $result ) ) {
91
-                /* @var WP_Error $result */
92
-                $error = wogh_append_error( $error, $result );
93
-            }
94
-        }
95
-
96
-        return $error;
97
-    }
98
-
99
-    /**
100
-     * Imports the latest commit on the master branch.
101
-     *
102
-     * @param  boolean $force
103
-     * @return string|WP_Error
104
-     */
105
-    public function master( $force = false ) {
106
-        $result = $this->app->api()->fetch()->tree_recursive();
107
-
108
-        if ( is_wp_error( $result ) ) {
109
-            /* @var WP_Error $result */
110
-            return $result;
111
-        }
112
-
113
-        if ( is_array( $result ) ) {
114
-            $result = $this->import_files( $result, $force );
115
-        }
116
-
117
-        if ( is_wp_error( $result ) ) {
118
-            /* @var WP_Error $result */
119
-            return $result;
120
-        }
121
-
122
-        return __( 'Payload processed', 'writing-on-github' );
123
-    }
124
-
125
-    /**
126
-     * Checks whether the provided blob should be imported.
127
-     *
128
-     * @param Writing_On_GitHub_File_Info $file
129
-     *
130
-     * @return bool
131
-     */
132
-    protected function importable_file( Writing_On_GitHub_File_Info $file ) {
133
-
134
-        $path = $file->path;
135
-
136
-        // only _pages, _posts and images
137
-        $prefixs = array( '_pages/', '_posts/', 'images/');
138
-        foreach ($prefixs as $prefix) {
139
-            if ( ! strncasecmp($path, $prefix, strlen( $prefix ) ) ) {
140
-                return true;
141
-            }
142
-        }
143
-        return false;
144
-    }
145
-
146
-    /**
147
-     * Checks whether the provided blob should be imported.
148
-     *
149
-     * @param Writing_On_GitHub_Blob $blob Blob to validate.
150
-     *
151
-     * @return bool
152
-     */
153
-    protected function importable_post( Writing_On_GitHub_Blob $blob ) {
154
-        // global $wpdb;
155
-
156
-        // // Skip the repo's readme.
157
-        // if ( 'readme' === strtolower( substr( $blob->path(), 0, 6 ) ) ) {
158
-        //  return false;
159
-        // }
160
-
161
-        // // If the blob sha already matches a post, then move on.
162
-        // if ( ! is_wp_error( $this->app->database()->fetch_by_sha( $blob->sha() ) ) ) {
163
-        //  return false;
164
-        // }
165
-
166
-        if ( ! $blob->has_frontmatter() ) {
167
-            return false;
168
-        }
169
-
170
-        return true;
171
-    }
172
-
173
-    /**
174
-     * Delete post
175
-     * @param  Writing_On_GitHub_Blob $blob
176
-     * @return WP_Error|bool
177
-     */
178
-    protected function delete_post( Writing_On_GitHub_Blob $blob ) {
179
-        $id = $blob->id();
180
-        if ( empty( $id ) ) {
181
-            return false;
182
-        }
183
-        $result = $this->app->database()->delete_post( $id );
184
-        if ( is_wp_error( $result ) ) {
185
-            /* @var WP_Error $result */
186
-            return $result;
187
-        }
188
-        return true;
189
-    }
190
-
191
-    /**
192
-     * Imports a post into wordpress
193
-     * @param  Writing_On_GitHub_Blob $blob
194
-     * @param  boolean                $force
195
-     * @return WP_Error|bool
196
-     */
197
-    protected function import_post( Writing_On_GitHub_Blob $blob, $force = false ) {
198
-        $post = $this->blob_to_post( $blob, $force );
199
-
200
-        if ( ! $post instanceof Writing_On_GitHub_Post ) {
201
-            return false;
202
-        }
203
-
204
-        $result = $this->app->database()->save_post( $post );
205
-        if ( is_wp_error( $result ) ) {
206
-            /** @var WP_Error $result */
207
-            return $result;
208
-        }
209
-
210
-        if ( $post->is_new() ||
211
-                ! wogh_equal_path( $post, $blob ) ||
212
-                ! wogh_equal_front_matter( $post, $blob ) ) {
213
-
214
-            $result = $this->app->export()->export_post( $post );
215
-
216
-            if ( is_wp_error( $result ) ) {
217
-                /** @var WP_Error $result */
218
-                return $result;
219
-            }
220
-        }
221
-
222
-        clean_post_cache( $post->id() );
223
-
224
-        return true;
225
-    }
226
-
227
-    /**
228
-     * import raw file
229
-     * @param  Writing_On_GitHub_Blob $blob
230
-     * @return bool
231
-     */
232
-    protected function importable_raw_file( Writing_On_GitHub_Blob $blob ) {
233
-        if ( $blob->has_frontmatter() ) {
234
-            return false;
235
-        }
236
-
237
-        // only images
238
-        if ( strncasecmp($blob->path(), 'images/', strlen('images/') ) != 0) {
239
-            return false;
240
-        }
241
-
242
-        return true;
243
-    }
244
-
245
-    /**
246
-     * Imports a raw file content into file system.
247
-     * @param  Writing_On_GitHub_Blob $blob
248
-     * @param  bool                   $is_remove
249
-     */
250
-    protected function import_raw_file( Writing_On_GitHub_Blob $blob, $is_remove ) {
251
-        $arr = wp_upload_dir();
252
-        $path = $arr['basedir'] . '/writing-on-github/' . $blob->path();
253
-        if ( $is_remove ) {
254
-            if ( file_exists($path) ) {
255
-                unlink($path);
256
-            }
257
-        } else {
258
-            $dirname = dirname($path);
259
-            if ( ! file_exists($dirname) ) {
260
-                wp_mkdir_p($dirname);
261
-            }
262
-
263
-            file_put_contents($path, $blob->content());
264
-        }
265
-        return true;
266
-    }
267
-
268
-    /**
269
-     * Imports a single blob content into matching post.
270
-     *
271
-     * @param Writing_On_GitHub_Blob $blob Blob to transform into a Post.
272
-     * @param boolean                $force
273
-     *
274
-     * @return Writing_On_GitHub_Post|false
275
-     */
276
-    protected function blob_to_post( Writing_On_GitHub_Blob $blob, $force = false ) {
277
-        $args = array( 'post_content' => $blob->content_import() );
278
-        $meta = $blob->meta();
279
-
280
-        $id = false;
281
-
282
-        if ( ! empty( $meta ) ) {
283
-            if ( array_key_exists( 'layout', $meta ) ) {
284
-                $args['post_type'] = $meta['layout'];
285
-                unset( $meta['layout'] );
286
-            }
287
-
288
-            if ( array_key_exists( 'published', $meta ) ) {
289
-                $args['post_status'] = true === $meta['published'] ? 'publish' : 'draft';
290
-                unset( $meta['published'] );
291
-            }
292
-
293
-            if ( array_key_exists( 'post_title', $meta ) ) {
294
-                $args['post_title'] = $meta['post_title'];
295
-                unset( $meta['post_title'] );
296
-            }
297
-
298
-            if ( array_key_exists( 'post_name', $meta ) ) {
299
-                $args['post_name'] = $meta['post_name'];
300
-                unset( $meta['post_name'] );
301
-            }
302
-
303
-            if ( array_key_exists( 'ID', $meta ) ) {
304
-                $id = $args['ID'] = $meta['ID'];
305
-                $blob->set_id( $id );
306
-                unset( $meta['ID'] );
307
-            }
308
-
309
-            if ( array_key_exists( 'post_date', $meta ) ) {
310
-                if ( empty( $meta['post_date'] ) ) {
311
-                    $meta['post_date'] = current_time( 'mysql' );
312
-                }
313
-
314
-                $args['post_date'] = $meta['post_date'];
315
-                unset( $meta['post_date'] );
316
-            }
317
-        }
318
-
319
-        $meta['_wogh_sha'] = $blob->sha();
320
-
321
-        if ( ! $force && $id ) {
322
-            $old_sha = get_post_meta( $id, '_wogh_sha', true );
323
-            $old_github_path = get_post_meta( $id, '_wogh_github_path', true );
324
-
325
-            // dont save post when has same sha
326
-            if ( $old_sha  && $old_sha == $meta['_wogh_sha'] &&
327
-                 $old_github_path && $old_github_path == $blob->path() ) {
328
-                return false;
329
-            }
330
-        }
331
-
332
-        $post = new Writing_On_GitHub_Post( $args, $this->app->api() );
333
-        $post->set_old_github_path( $blob->path() );
334
-        $post->set_meta( $meta );
335
-        $post->set_blob( $blob );
336
-        $blob->set_id( $post->id() );
337
-
338
-        return $post;
339
-    }
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
+	 * @param  boolean $force
59
+	 *
60
+	 * @return true|WP_Error
61
+	 */
62
+	protected function import_files( $files, $force = false ) {
63
+
64
+		$error = true;
65
+
66
+		foreach ( $files as $file ) {
67
+			if ( ! $this->importable_file( $file ) ) {
68
+				continue;
69
+			}
70
+
71
+			$blob = $this->app->api()->fetch()->blob( $file );
72
+			// network error ?
73
+			if ( ! $blob instanceof Writing_On_GitHub_Blob ) {
74
+				continue;
75
+			}
76
+
77
+			$is_remove = 'removed' == $file->status;
78
+
79
+			$result = false;
80
+			if ( $this->importable_raw_file( $blob ) ) {
81
+				$result = $this->import_raw_file( $blob, $is_remove );
82
+			} elseif ( $this->importable_post( $blob ) ) {
83
+				if ( $is_remove ) {
84
+					$result = $this->delete_post( $blob );
85
+				} else {
86
+					$result = $this->import_post( $blob, $force );
87
+				}
88
+			}
89
+
90
+			if ( is_wp_error( $result ) ) {
91
+				/* @var WP_Error $result */
92
+				$error = wogh_append_error( $error, $result );
93
+			}
94
+		}
95
+
96
+		return $error;
97
+	}
98
+
99
+	/**
100
+	 * Imports the latest commit on the master branch.
101
+	 *
102
+	 * @param  boolean $force
103
+	 * @return string|WP_Error
104
+	 */
105
+	public function master( $force = false ) {
106
+		$result = $this->app->api()->fetch()->tree_recursive();
107
+
108
+		if ( is_wp_error( $result ) ) {
109
+			/* @var WP_Error $result */
110
+			return $result;
111
+		}
112
+
113
+		if ( is_array( $result ) ) {
114
+			$result = $this->import_files( $result, $force );
115
+		}
116
+
117
+		if ( is_wp_error( $result ) ) {
118
+			/* @var WP_Error $result */
119
+			return $result;
120
+		}
121
+
122
+		return __( 'Payload processed', 'writing-on-github' );
123
+	}
124
+
125
+	/**
126
+	 * Checks whether the provided blob should be imported.
127
+	 *
128
+	 * @param Writing_On_GitHub_File_Info $file
129
+	 *
130
+	 * @return bool
131
+	 */
132
+	protected function importable_file( Writing_On_GitHub_File_Info $file ) {
133
+
134
+		$path = $file->path;
135
+
136
+		// only _pages, _posts and images
137
+		$prefixs = array( '_pages/', '_posts/', 'images/');
138
+		foreach ($prefixs as $prefix) {
139
+			if ( ! strncasecmp($path, $prefix, strlen( $prefix ) ) ) {
140
+				return true;
141
+			}
142
+		}
143
+		return false;
144
+	}
145
+
146
+	/**
147
+	 * Checks whether the provided blob should be imported.
148
+	 *
149
+	 * @param Writing_On_GitHub_Blob $blob Blob to validate.
150
+	 *
151
+	 * @return bool
152
+	 */
153
+	protected function importable_post( Writing_On_GitHub_Blob $blob ) {
154
+		// global $wpdb;
155
+
156
+		// // Skip the repo's readme.
157
+		// if ( 'readme' === strtolower( substr( $blob->path(), 0, 6 ) ) ) {
158
+		//  return false;
159
+		// }
160
+
161
+		// // If the blob sha already matches a post, then move on.
162
+		// if ( ! is_wp_error( $this->app->database()->fetch_by_sha( $blob->sha() ) ) ) {
163
+		//  return false;
164
+		// }
165
+
166
+		if ( ! $blob->has_frontmatter() ) {
167
+			return false;
168
+		}
169
+
170
+		return true;
171
+	}
172
+
173
+	/**
174
+	 * Delete post
175
+	 * @param  Writing_On_GitHub_Blob $blob
176
+	 * @return WP_Error|bool
177
+	 */
178
+	protected function delete_post( Writing_On_GitHub_Blob $blob ) {
179
+		$id = $blob->id();
180
+		if ( empty( $id ) ) {
181
+			return false;
182
+		}
183
+		$result = $this->app->database()->delete_post( $id );
184
+		if ( is_wp_error( $result ) ) {
185
+			/* @var WP_Error $result */
186
+			return $result;
187
+		}
188
+		return true;
189
+	}
190
+
191
+	/**
192
+	 * Imports a post into wordpress
193
+	 * @param  Writing_On_GitHub_Blob $blob
194
+	 * @param  boolean                $force
195
+	 * @return WP_Error|bool
196
+	 */
197
+	protected function import_post( Writing_On_GitHub_Blob $blob, $force = false ) {
198
+		$post = $this->blob_to_post( $blob, $force );
199
+
200
+		if ( ! $post instanceof Writing_On_GitHub_Post ) {
201
+			return false;
202
+		}
203
+
204
+		$result = $this->app->database()->save_post( $post );
205
+		if ( is_wp_error( $result ) ) {
206
+			/** @var WP_Error $result */
207
+			return $result;
208
+		}
209
+
210
+		if ( $post->is_new() ||
211
+				! wogh_equal_path( $post, $blob ) ||
212
+				! wogh_equal_front_matter( $post, $blob ) ) {
213
+
214
+			$result = $this->app->export()->export_post( $post );
215
+
216
+			if ( is_wp_error( $result ) ) {
217
+				/** @var WP_Error $result */
218
+				return $result;
219
+			}
220
+		}
221
+
222
+		clean_post_cache( $post->id() );
223
+
224
+		return true;
225
+	}
226
+
227
+	/**
228
+	 * import raw file
229
+	 * @param  Writing_On_GitHub_Blob $blob
230
+	 * @return bool
231
+	 */
232
+	protected function importable_raw_file( Writing_On_GitHub_Blob $blob ) {
233
+		if ( $blob->has_frontmatter() ) {
234
+			return false;
235
+		}
236
+
237
+		// only images
238
+		if ( strncasecmp($blob->path(), 'images/', strlen('images/') ) != 0) {
239
+			return false;
240
+		}
241
+
242
+		return true;
243
+	}
244
+
245
+	/**
246
+	 * Imports a raw file content into file system.
247
+	 * @param  Writing_On_GitHub_Blob $blob
248
+	 * @param  bool                   $is_remove
249
+	 */
250
+	protected function import_raw_file( Writing_On_GitHub_Blob $blob, $is_remove ) {
251
+		$arr = wp_upload_dir();
252
+		$path = $arr['basedir'] . '/writing-on-github/' . $blob->path();
253
+		if ( $is_remove ) {
254
+			if ( file_exists($path) ) {
255
+				unlink($path);
256
+			}
257
+		} else {
258
+			$dirname = dirname($path);
259
+			if ( ! file_exists($dirname) ) {
260
+				wp_mkdir_p($dirname);
261
+			}
262
+
263
+			file_put_contents($path, $blob->content());
264
+		}
265
+		return true;
266
+	}
267
+
268
+	/**
269
+	 * Imports a single blob content into matching post.
270
+	 *
271
+	 * @param Writing_On_GitHub_Blob $blob Blob to transform into a Post.
272
+	 * @param boolean                $force
273
+	 *
274
+	 * @return Writing_On_GitHub_Post|false
275
+	 */
276
+	protected function blob_to_post( Writing_On_GitHub_Blob $blob, $force = false ) {
277
+		$args = array( 'post_content' => $blob->content_import() );
278
+		$meta = $blob->meta();
279
+
280
+		$id = false;
281
+
282
+		if ( ! empty( $meta ) ) {
283
+			if ( array_key_exists( 'layout', $meta ) ) {
284
+				$args['post_type'] = $meta['layout'];
285
+				unset( $meta['layout'] );
286
+			}
287
+
288
+			if ( array_key_exists( 'published', $meta ) ) {
289
+				$args['post_status'] = true === $meta['published'] ? 'publish' : 'draft';
290
+				unset( $meta['published'] );
291
+			}
292
+
293
+			if ( array_key_exists( 'post_title', $meta ) ) {
294
+				$args['post_title'] = $meta['post_title'];
295
+				unset( $meta['post_title'] );
296
+			}
297
+
298
+			if ( array_key_exists( 'post_name', $meta ) ) {
299
+				$args['post_name'] = $meta['post_name'];
300
+				unset( $meta['post_name'] );
301
+			}
302
+
303
+			if ( array_key_exists( 'ID', $meta ) ) {
304
+				$id = $args['ID'] = $meta['ID'];
305
+				$blob->set_id( $id );
306
+				unset( $meta['ID'] );
307
+			}
308
+
309
+			if ( array_key_exists( 'post_date', $meta ) ) {
310
+				if ( empty( $meta['post_date'] ) ) {
311
+					$meta['post_date'] = current_time( 'mysql' );
312
+				}
313
+
314
+				$args['post_date'] = $meta['post_date'];
315
+				unset( $meta['post_date'] );
316
+			}
317
+		}
318
+
319
+		$meta['_wogh_sha'] = $blob->sha();
320
+
321
+		if ( ! $force && $id ) {
322
+			$old_sha = get_post_meta( $id, '_wogh_sha', true );
323
+			$old_github_path = get_post_meta( $id, '_wogh_github_path', true );
324
+
325
+			// dont save post when has same sha
326
+			if ( $old_sha  && $old_sha == $meta['_wogh_sha'] &&
327
+				 $old_github_path && $old_github_path == $blob->path() ) {
328
+				return false;
329
+			}
330
+		}
331
+
332
+		$post = new Writing_On_GitHub_Post( $args, $this->app->api() );
333
+		$post->set_old_github_path( $blob->path() );
334
+		$post->set_meta( $meta );
335
+		$post->set_blob( $blob );
336
+		$blob->set_id( $post->id() );
337
+
338
+		return $post;
339
+	}
340 340
 }
Please login to merge, or discard this patch.
Spacing   +82 added lines, -82 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
     /**
@@ -59,37 +59,37 @@  discard block
 block discarded – undo
59 59
      *
60 60
      * @return true|WP_Error
61 61
      */
62
-    protected function import_files( $files, $force = false ) {
62
+    protected function import_files($files, $force = false) {
63 63
 
64 64
         $error = true;
65 65
 
66
-        foreach ( $files as $file ) {
67
-            if ( ! $this->importable_file( $file ) ) {
66
+        foreach ($files as $file) {
67
+            if ( ! $this->importable_file($file)) {
68 68
                 continue;
69 69
             }
70 70
 
71
-            $blob = $this->app->api()->fetch()->blob( $file );
71
+            $blob = $this->app->api()->fetch()->blob($file);
72 72
             // network error ?
73
-            if ( ! $blob instanceof Writing_On_GitHub_Blob ) {
73
+            if ( ! $blob instanceof Writing_On_GitHub_Blob) {
74 74
                 continue;
75 75
             }
76 76
 
77 77
             $is_remove = 'removed' == $file->status;
78 78
 
79 79
             $result = false;
80
-            if ( $this->importable_raw_file( $blob ) ) {
81
-                $result = $this->import_raw_file( $blob, $is_remove );
82
-            } elseif ( $this->importable_post( $blob ) ) {
83
-                if ( $is_remove ) {
84
-                    $result = $this->delete_post( $blob );
80
+            if ($this->importable_raw_file($blob)) {
81
+                $result = $this->import_raw_file($blob, $is_remove);
82
+            } elseif ($this->importable_post($blob)) {
83
+                if ($is_remove) {
84
+                    $result = $this->delete_post($blob);
85 85
                 } else {
86
-                    $result = $this->import_post( $blob, $force );
86
+                    $result = $this->import_post($blob, $force);
87 87
                 }
88 88
             }
89 89
 
90
-            if ( is_wp_error( $result ) ) {
90
+            if (is_wp_error($result)) {
91 91
                 /* @var WP_Error $result */
92
-                $error = wogh_append_error( $error, $result );
92
+                $error = wogh_append_error($error, $result);
93 93
             }
94 94
         }
95 95
 
@@ -102,24 +102,24 @@  discard block
 block discarded – undo
102 102
      * @param  boolean $force
103 103
      * @return string|WP_Error
104 104
      */
105
-    public function master( $force = false ) {
105
+    public function master($force = false) {
106 106
         $result = $this->app->api()->fetch()->tree_recursive();
107 107
 
108
-        if ( is_wp_error( $result ) ) {
108
+        if (is_wp_error($result)) {
109 109
             /* @var WP_Error $result */
110 110
             return $result;
111 111
         }
112 112
 
113
-        if ( is_array( $result ) ) {
114
-            $result = $this->import_files( $result, $force );
113
+        if (is_array($result)) {
114
+            $result = $this->import_files($result, $force);
115 115
         }
116 116
 
117
-        if ( is_wp_error( $result ) ) {
117
+        if (is_wp_error($result)) {
118 118
             /* @var WP_Error $result */
119 119
             return $result;
120 120
         }
121 121
 
122
-        return __( 'Payload processed', 'writing-on-github' );
122
+        return __('Payload processed', 'writing-on-github');
123 123
     }
124 124
 
125 125
     /**
@@ -129,14 +129,14 @@  discard block
 block discarded – undo
129 129
      *
130 130
      * @return bool
131 131
      */
132
-    protected function importable_file( Writing_On_GitHub_File_Info $file ) {
132
+    protected function importable_file(Writing_On_GitHub_File_Info $file) {
133 133
 
134 134
         $path = $file->path;
135 135
 
136 136
         // only _pages, _posts and images
137
-        $prefixs = array( '_pages/', '_posts/', 'images/');
137
+        $prefixs = array('_pages/', '_posts/', 'images/');
138 138
         foreach ($prefixs as $prefix) {
139
-            if ( ! strncasecmp($path, $prefix, strlen( $prefix ) ) ) {
139
+            if ( ! strncasecmp($path, $prefix, strlen($prefix))) {
140 140
                 return true;
141 141
             }
142 142
         }
@@ -150,7 +150,7 @@  discard block
 block discarded – undo
150 150
      *
151 151
      * @return bool
152 152
      */
153
-    protected function importable_post( Writing_On_GitHub_Blob $blob ) {
153
+    protected function importable_post(Writing_On_GitHub_Blob $blob) {
154 154
         // global $wpdb;
155 155
 
156 156
         // // Skip the repo's readme.
@@ -163,7 +163,7 @@  discard block
 block discarded – undo
163 163
         //  return false;
164 164
         // }
165 165
 
166
-        if ( ! $blob->has_frontmatter() ) {
166
+        if ( ! $blob->has_frontmatter()) {
167 167
             return false;
168 168
         }
169 169
 
@@ -175,13 +175,13 @@  discard block
 block discarded – undo
175 175
      * @param  Writing_On_GitHub_Blob $blob
176 176
      * @return WP_Error|bool
177 177
      */
178
-    protected function delete_post( Writing_On_GitHub_Blob $blob ) {
178
+    protected function delete_post(Writing_On_GitHub_Blob $blob) {
179 179
         $id = $blob->id();
180
-        if ( empty( $id ) ) {
180
+        if (empty($id)) {
181 181
             return false;
182 182
         }
183
-        $result = $this->app->database()->delete_post( $id );
184
-        if ( is_wp_error( $result ) ) {
183
+        $result = $this->app->database()->delete_post($id);
184
+        if (is_wp_error($result)) {
185 185
             /* @var WP_Error $result */
186 186
             return $result;
187 187
         }
@@ -194,32 +194,32 @@  discard block
 block discarded – undo
194 194
      * @param  boolean                $force
195 195
      * @return WP_Error|bool
196 196
      */
197
-    protected function import_post( Writing_On_GitHub_Blob $blob, $force = false ) {
198
-        $post = $this->blob_to_post( $blob, $force );
197
+    protected function import_post(Writing_On_GitHub_Blob $blob, $force = false) {
198
+        $post = $this->blob_to_post($blob, $force);
199 199
 
200
-        if ( ! $post instanceof Writing_On_GitHub_Post ) {
200
+        if ( ! $post instanceof Writing_On_GitHub_Post) {
201 201
             return false;
202 202
         }
203 203
 
204
-        $result = $this->app->database()->save_post( $post );
205
-        if ( is_wp_error( $result ) ) {
204
+        $result = $this->app->database()->save_post($post);
205
+        if (is_wp_error($result)) {
206 206
             /** @var WP_Error $result */
207 207
             return $result;
208 208
         }
209 209
 
210
-        if ( $post->is_new() ||
211
-                ! wogh_equal_path( $post, $blob ) ||
212
-                ! wogh_equal_front_matter( $post, $blob ) ) {
210
+        if ($post->is_new() ||
211
+                ! wogh_equal_path($post, $blob) ||
212
+                ! wogh_equal_front_matter($post, $blob)) {
213 213
 
214
-            $result = $this->app->export()->export_post( $post );
214
+            $result = $this->app->export()->export_post($post);
215 215
 
216
-            if ( is_wp_error( $result ) ) {
216
+            if (is_wp_error($result)) {
217 217
                 /** @var WP_Error $result */
218 218
                 return $result;
219 219
             }
220 220
         }
221 221
 
222
-        clean_post_cache( $post->id() );
222
+        clean_post_cache($post->id());
223 223
 
224 224
         return true;
225 225
     }
@@ -229,13 +229,13 @@  discard block
 block discarded – undo
229 229
      * @param  Writing_On_GitHub_Blob $blob
230 230
      * @return bool
231 231
      */
232
-    protected function importable_raw_file( Writing_On_GitHub_Blob $blob ) {
233
-        if ( $blob->has_frontmatter() ) {
232
+    protected function importable_raw_file(Writing_On_GitHub_Blob $blob) {
233
+        if ($blob->has_frontmatter()) {
234 234
             return false;
235 235
         }
236 236
 
237 237
         // only images
238
-        if ( strncasecmp($blob->path(), 'images/', strlen('images/') ) != 0) {
238
+        if (strncasecmp($blob->path(), 'images/', strlen('images/')) != 0) {
239 239
             return false;
240 240
         }
241 241
 
@@ -247,16 +247,16 @@  discard block
 block discarded – undo
247 247
      * @param  Writing_On_GitHub_Blob $blob
248 248
      * @param  bool                   $is_remove
249 249
      */
250
-    protected function import_raw_file( Writing_On_GitHub_Blob $blob, $is_remove ) {
250
+    protected function import_raw_file(Writing_On_GitHub_Blob $blob, $is_remove) {
251 251
         $arr = wp_upload_dir();
252 252
         $path = $arr['basedir'] . '/writing-on-github/' . $blob->path();
253
-        if ( $is_remove ) {
254
-            if ( file_exists($path) ) {
253
+        if ($is_remove) {
254
+            if (file_exists($path)) {
255 255
                 unlink($path);
256 256
             }
257 257
         } else {
258 258
             $dirname = dirname($path);
259
-            if ( ! file_exists($dirname) ) {
259
+            if ( ! file_exists($dirname)) {
260 260
                 wp_mkdir_p($dirname);
261 261
             }
262 262
 
@@ -273,67 +273,67 @@  discard block
 block discarded – undo
273 273
      *
274 274
      * @return Writing_On_GitHub_Post|false
275 275
      */
276
-    protected function blob_to_post( Writing_On_GitHub_Blob $blob, $force = false ) {
277
-        $args = array( 'post_content' => $blob->content_import() );
276
+    protected function blob_to_post(Writing_On_GitHub_Blob $blob, $force = false) {
277
+        $args = array('post_content' => $blob->content_import());
278 278
         $meta = $blob->meta();
279 279
 
280 280
         $id = false;
281 281
 
282
-        if ( ! empty( $meta ) ) {
283
-            if ( array_key_exists( 'layout', $meta ) ) {
282
+        if ( ! empty($meta)) {
283
+            if (array_key_exists('layout', $meta)) {
284 284
                 $args['post_type'] = $meta['layout'];
285
-                unset( $meta['layout'] );
285
+                unset($meta['layout']);
286 286
             }
287 287
 
288
-            if ( array_key_exists( 'published', $meta ) ) {
288
+            if (array_key_exists('published', $meta)) {
289 289
                 $args['post_status'] = true === $meta['published'] ? 'publish' : 'draft';
290
-                unset( $meta['published'] );
290
+                unset($meta['published']);
291 291
             }
292 292
 
293
-            if ( array_key_exists( 'post_title', $meta ) ) {
293
+            if (array_key_exists('post_title', $meta)) {
294 294
                 $args['post_title'] = $meta['post_title'];
295
-                unset( $meta['post_title'] );
295
+                unset($meta['post_title']);
296 296
             }
297 297
 
298
-            if ( array_key_exists( 'post_name', $meta ) ) {
298
+            if (array_key_exists('post_name', $meta)) {
299 299
                 $args['post_name'] = $meta['post_name'];
300
-                unset( $meta['post_name'] );
300
+                unset($meta['post_name']);
301 301
             }
302 302
 
303
-            if ( array_key_exists( 'ID', $meta ) ) {
303
+            if (array_key_exists('ID', $meta)) {
304 304
                 $id = $args['ID'] = $meta['ID'];
305
-                $blob->set_id( $id );
306
-                unset( $meta['ID'] );
305
+                $blob->set_id($id);
306
+                unset($meta['ID']);
307 307
             }
308 308
 
309
-            if ( array_key_exists( 'post_date', $meta ) ) {
310
-                if ( empty( $meta['post_date'] ) ) {
311
-                    $meta['post_date'] = current_time( 'mysql' );
309
+            if (array_key_exists('post_date', $meta)) {
310
+                if (empty($meta['post_date'])) {
311
+                    $meta['post_date'] = current_time('mysql');
312 312
                 }
313 313
 
314 314
                 $args['post_date'] = $meta['post_date'];
315
-                unset( $meta['post_date'] );
315
+                unset($meta['post_date']);
316 316
             }
317 317
         }
318 318
 
319 319
         $meta['_wogh_sha'] = $blob->sha();
320 320
 
321
-        if ( ! $force && $id ) {
322
-            $old_sha = get_post_meta( $id, '_wogh_sha', true );
323
-            $old_github_path = get_post_meta( $id, '_wogh_github_path', true );
321
+        if ( ! $force && $id) {
322
+            $old_sha = get_post_meta($id, '_wogh_sha', true);
323
+            $old_github_path = get_post_meta($id, '_wogh_github_path', true);
324 324
 
325 325
             // dont save post when has same sha
326
-            if ( $old_sha  && $old_sha == $meta['_wogh_sha'] &&
327
-                 $old_github_path && $old_github_path == $blob->path() ) {
326
+            if ($old_sha && $old_sha == $meta['_wogh_sha'] &&
327
+                 $old_github_path && $old_github_path == $blob->path()) {
328 328
                 return false;
329 329
             }
330 330
         }
331 331
 
332
-        $post = new Writing_On_GitHub_Post( $args, $this->app->api() );
333
-        $post->set_old_github_path( $blob->path() );
334
-        $post->set_meta( $meta );
335
-        $post->set_blob( $blob );
336
-        $blob->set_id( $post->id() );
332
+        $post = new Writing_On_GitHub_Post($args, $this->app->api());
333
+        $post->set_old_github_path($blob->path());
334
+        $post->set_meta($meta);
335
+        $post->set_blob($blob);
336
+        $blob->set_id($post->id());
337 337
 
338 338
         return $post;
339 339
     }
Please login to merge, or discard this patch.
lib/post.php 2 patches
Indentation   +476 added lines, -476 removed lines patch added patch discarded remove patch
@@ -9,480 +9,480 @@
 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
-     * Blob object
27
-     * @var Writing_On_GitHub_Blob
28
-     */
29
-    public $blob;
30
-
31
-    /**
32
-     * Post object
33
-     * @var WP_Post
34
-     */
35
-    public $post;
36
-
37
-    /**
38
-     * Post args.
39
-     *
40
-     * @var array
41
-     */
42
-    protected $args;
43
-
44
-    /**
45
-     * Post meta.
46
-     *
47
-     * @var array
48
-     */
49
-    protected $meta;
50
-
51
-    /**
52
-     * Whether the post has been saved.
53
-     *
54
-     * @var bool
55
-     */
56
-    protected $new = true;
57
-
58
-
59
-    protected $old_github_path;
60
-
61
-    /**
62
-     * Instantiates a new Post object
63
-     *
64
-     * @param int|array                 $id_or_args Either a post ID or an array of arguments.
65
-     * @param Writing_On_GitHub_Api $api API object.
66
-     *
67
-     * @todo remove database operations from this method
68
-     */
69
-    public function __construct( $id_or_args, Writing_On_GitHub_Api $api ) {
70
-        $this->api = $api;
71
-
72
-        if ( is_numeric( $id_or_args ) ) {
73
-            $this->id   = (int) $id_or_args;
74
-            $this->post = get_post( $this->id );
75
-            $this->new  = false;
76
-        }
77
-
78
-        if ( is_array( $id_or_args ) ) {
79
-            $this->args = $id_or_args;
80
-
81
-            if ( isset( $this->args['ID'] ) ) {
82
-                $this->post = get_post( $this->args['ID'] );
83
-
84
-                if ( $this->post ) {
85
-                    $this->id  = $this->post->ID;
86
-                    $this->new = false;
87
-                } else {
88
-                    unset( $this->args['ID'] );
89
-                }
90
-            }
91
-        }
92
-    }
93
-
94
-    public function id() {
95
-        return $this->id;
96
-    }
97
-
98
-    /**
99
-     * Returns the post type
100
-     */
101
-    public function type() {
102
-        return $this->post->post_type;
103
-    }
104
-
105
-    /**
106
-     * Returns the post type
107
-     */
108
-    public function status() {
109
-        return $this->post->post_status;
110
-    }
111
-
112
-    /**
113
-     * Returns the post name
114
-     */
115
-    public function name() {
116
-        return $this->post->post_name;
117
-    }
118
-
119
-    /**
120
-     * Returns true if the post has a password
121
-     * @return bool
122
-     */
123
-    public function has_password() {
124
-        return ! empty( $this->post->post_password );
125
-    }
126
-
127
-    /**
128
-     * Combines the 2 content parts for GitHub
129
-     */
130
-    public function github_content() {
131
-        $use_blob = wogh_is_dont_export_content() && $this->blob;
132
-        $content = $use_blob ?
133
-            $this->blob->post_content() :
134
-            $this->post_content();
135
-
136
-        return $this->front_matter() . $content;
137
-        // $content = $this->front_matter() . $content;
138
-        // $ending  = apply_filters( 'wogh_line_endings', "\n" );
139
-
140
-        // return preg_replace( '~(*BSR_ANYCRLF)\R~', $ending, $content );
141
-    }
142
-
143
-    /**
144
-     * The post's YAML frontmatter
145
-     *
146
-     * Returns String the YAML frontmatter, ready to be written to the file
147
-     */
148
-    public function front_matter() {
149
-        return "---\n" . spyc_dump( $this->meta() ) . "---\n";
150
-    }
151
-
152
-    /**
153
-     * Returns the post_content
154
-     *
155
-     * Markdownify's the content if applicable
156
-     */
157
-    public function post_content() {
158
-        $content = $this->post->post_content;
159
-
160
-        if ( function_exists( 'wpmarkdown_html_to_markdown' ) ) {
161
-            $content = wpmarkdown_html_to_markdown( $content );
162
-        } else if ( class_exists( 'WPCom_Markdown' ) ) {
163
-            if ( WPCom_Markdown::get_instance()->is_markdown( $this->post->ID ) ) {
164
-                $content = $this->post->post_content_filtered;
165
-            }
166
-        }
167
-
168
-        return apply_filters( 'wogh_content_export', $content, $this );
169
-    }
170
-
171
-    public function old_github_path() {
172
-        return $this->old_github_path;
173
-    }
174
-
175
-    public function set_old_github_path( $path ) {
176
-        $this->old_github_path = $path;
177
-        update_post_meta( $this->id, '_wogh_github_path', $path );
178
-    }
179
-
180
-
181
-    /**
182
-     * Retrieves or calculates the proper GitHub path for a given post
183
-     *
184
-     * Returns (string) the path relative to repo root
185
-     */
186
-    public function github_path() {
187
-        $path = $this->github_directory() . $this->github_filename();
188
-
189
-        return $path;
190
-    }
191
-
192
-    /**
193
-     * Get GitHub directory based on post
194
-     *
195
-     * @return string
196
-     */
197
-    public function github_directory() {
198
-        if ( 'publish' !== $this->status() ) {
199
-            return apply_filters( 'wogh_directory_unpublished', '_drafts/', $this );
200
-        }
201
-
202
-        $name = '';
203
-
204
-        switch ( $this->type() ) {
205
-            case 'post':
206
-                $name = 'posts';
207
-                break;
208
-            case 'page':
209
-                $name = 'pages';
210
-                break;
211
-            default:
212
-                $obj = get_post_type_object( $this->type() );
213
-
214
-                if ( $obj ) {
215
-                    $name = strtolower( $obj->labels->name );
216
-                }
217
-
218
-                if ( ! $name ) {
219
-                    $name = '';
220
-                }
221
-        }
222
-
223
-        if ( $name ) {
224
-            $name = '_' . $name . '/';
225
-        }
226
-
227
-        return apply_filters( 'wogh_directory_published', $name, $this );
228
-    }
229
-
230
-    /**
231
-     * Build GitHub filename based on post
232
-     */
233
-    public function github_filename() {
234
-        if ( 'post' === $this->type() ) {
235
-            $filename = get_the_time( 'Y/', $this->id ) . $this->get_name() . '.md';
236
-        } else {
237
-            $filename = $this->get_name() . '.md';
238
-        }
239
-
240
-        return apply_filters( 'wogh_filename', $filename, $this );
241
-    }
242
-
243
-    /**
244
-     * Returns a post slug we can use in the GitHub filename
245
-     *
246
-     * @return string
247
-     */
248
-    protected function get_name() {
249
-        if ( '' !== $this->name() ) {
250
-            return $this->name();
251
-        }
252
-
253
-        return sanitize_title( get_the_title( $this->post ) );
254
-    }
255
-
256
-    /**
257
-     * is put on github
258
-     * @return boolean
259
-     */
260
-    public function is_on_github() {
261
-        $sha = get_post_meta( $this->id, '_wogh_sha', true );
262
-        $github_path = get_post_meta( $this->id, '_wogh_github_path', true );
263
-        if ( $sha && $github_path ) {
264
-            return true;
265
-        }
266
-        return false;
267
-    }
268
-
269
-    /**
270
-     * Returns the URL for the post on GitHub.
271
-     *
272
-     * @return string
273
-     */
274
-    public function github_view_url() {
275
-        $github_path = get_post_meta( $this->id, '_wogh_github_path', true );
276
-        $repository = $this->api->fetch()->repository();
277
-        $branch = $this->api->fetch()->branch();
278
-
279
-        return "https://github.com/$repository/blob/$branch/$github_path";
280
-    }
281
-
282
-    /**
283
-     * Returns the URL for the post on GitHub.
284
-     *
285
-     * @return string
286
-     */
287
-    public function github_edit_url() {
288
-        $github_path = get_post_meta( $this->id, '_wogh_github_path', true );
289
-        $repository = $this->api->fetch()->repository();
290
-        $branch = $this->api->fetch()->branch();
291
-
292
-        return "https://github.com/$repository/edit/$branch/$github_path";
293
-    }
294
-
295
-    /**
296
-     * Retrieve post type directory from blob path.
297
-     *
298
-     * @param string $path Path string.
299
-     *
300
-     * @return string
301
-     */
302
-    public function get_directory_from_path( $path ) {
303
-        $directory = explode( '/', $path );
304
-        $directory = count( $directory ) > 0 ? $directory[0] : '';
305
-
306
-        return $directory;
307
-    }
308
-
309
-    /**
310
-     * Determines the last author to modify the post
311
-     *
312
-     * Returns Array an array containing the author name and email
313
-     */
314
-    public function last_modified_author() {
315
-        if ( $last_id = get_post_meta( $this->id, '_edit_last', true ) ) {
316
-            $user = get_userdata( $last_id );
317
-
318
-            if ( $user ) {
319
-                return array( 'name' => $user->display_name, 'email' => $user->user_email );
320
-            }
321
-        }
322
-
323
-        return array();
324
-    }
325
-
326
-    /**
327
-     * The post's sha
328
-     * Cached as post meta, or will make a live call if need be
329
-     *
330
-     * Returns String the sha1 hash
331
-     */
332
-    public function sha() {
333
-        $sha = get_post_meta( $this->id, '_wogh_sha', true );
334
-
335
-        // If we've done a full export and we have no sha
336
-        // then we should try a live check to see if it exists.
337
-        // if ( ! $sha && 'yes' === get_option( '_wogh_fully_exported' ) ) {
338
-
339
-        //  // @todo could we eliminate this by calling down the full tree and searching it
340
-        //  $data = $this->api->fetch()->remote_contents( $this );
341
-
342
-        //  if ( ! is_wp_error( $data ) ) {
343
-        //      update_post_meta( $this->id, '_wogh_sha', $data->sha );
344
-        //      $sha = $data->sha;
345
-        //  }
346
-        // }
347
-
348
-        // if the sha still doesn't exist, then it's empty
349
-        if ( ! $sha || is_wp_error( $sha ) ) {
350
-            $sha = '';
351
-        }
352
-
353
-        return $sha;
354
-    }
355
-
356
-    /**
357
-     * Save the sha to post
358
-     *
359
-     * @param string $sha
360
-     */
361
-    public function set_sha( $sha ) {
362
-        update_post_meta( $this->id, '_wogh_sha', $sha );
363
-    }
364
-
365
-    /**
366
-     * The post's metadata
367
-     *
368
-     * Returns Array the post's metadata
369
-     */
370
-    public function meta() {
371
-        $meta = array(
372
-            'ID'           => $this->id,
373
-            'post_title'   => get_the_title( $this->post ),
374
-            'post_name'    => $this->post->post_name,
375
-            'author'       => ( $author = get_userdata( $this->post->post_author ) ) ? $author->display_name : '',
376
-            'post_date'    => $this->post->post_date,
377
-            'post_excerpt' => $this->post->post_excerpt,
378
-            'layout'       => get_post_type( $this->post ),
379
-            'link'         => get_permalink( $this->post ),
380
-            'published'    => 'publish' === $this->status() ? true : false,
381
-            'tags'         => wp_get_post_tags( $this->id, array( 'fields' => 'names' ) ),
382
-            'categories'   => wp_get_post_categories( $this->id, array( 'fields' => 'names' ) )
383
-        );
384
-        if ( empty($this->post->post_name) ) {
385
-            unset($meta['post_name']);
386
-        }
387
-        if ( empty($this->post->post_excerpt) ) {
388
-            unset($meta['post_excerpt']);
389
-        }
390
-        if ( 'yes' == get_option('wogh_ignore_author') ) {
391
-            unset($meta['author']);
392
-        }
393
-
394
-        //convert traditional post_meta values, hide hidden values, skip already populated values
395
-        // foreach ( get_post_custom( $this->id ) as $key => $value ) {
396
-
397
-        //  if ( '_' === substr( $key, 0, 1 ) || isset( $meta[ $key ] ) ) {
398
-        //      continue;
399
-        //  }
400
-
401
-        //  $meta[ $key ] = $value;
402
-
403
-        // }
404
-
405
-        return apply_filters( 'wogh_post_meta', $meta, $this );
406
-    }
407
-
408
-    /**
409
-     * Returns whether the Post has been saved in the DB yet.
410
-     *
411
-     * @return bool
412
-     */
413
-    public function is_new() {
414
-        return $this->new;
415
-    }
416
-
417
-    /**
418
-     * Sets the Post's meta.
419
-     *
420
-     * @param array $meta
421
-     */
422
-    public function set_meta( $meta ) {
423
-        $this->meta = $meta;
424
-    }
425
-
426
-    /**
427
-     * Returns the Post's arguments.
428
-     *
429
-     * @return array
430
-     */
431
-    public function get_args() {
432
-        return $this->args;
433
-    }
434
-
435
-    /**
436
-     * Returns the Post's meta.
437
-     *
438
-     * @return array
439
-     */
440
-    public function get_meta() {
441
-        return $this->meta;
442
-    }
443
-
444
-    /**
445
-     * Get the blob
446
-     * @return Writing_On_GitHub_Blob
447
-     */
448
-    public function get_blob() {
449
-        return $this->blob;
450
-    }
451
-
452
-    /**
453
-     * Set the blob
454
-     * @param Writing_On_GitHub_Blob $blob
455
-     */
456
-    public function set_blob( Writing_On_GitHub_Blob $blob ) {
457
-        $this->blob = $blob;
458
-    }
459
-
460
-    /**
461
-     * Sets the Post's WP_Post object.
462
-     *
463
-     * @param WP_Post $post
464
-     *
465
-     * @return $this
466
-     */
467
-    public function set_post( WP_Post $post ) {
468
-        $this->post = $post;
469
-        $this->id   = $post->ID;
470
-
471
-        return $this;
472
-    }
473
-
474
-    /**
475
-     * Transforms the Post into a Blob.
476
-     *
477
-     * @return Writing_On_GitHub_Blob
478
-     */
479
-    public function to_blob() {
480
-        $data = new stdClass;
481
-
482
-        $data->path    = $this->github_path();
483
-        $data->content = $this->github_content();
484
-        $data->sha     = $this->sha();
485
-
486
-        return new Writing_On_GitHub_Blob( $data );
487
-    }
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
+	 * Blob object
27
+	 * @var Writing_On_GitHub_Blob
28
+	 */
29
+	public $blob;
30
+
31
+	/**
32
+	 * Post object
33
+	 * @var WP_Post
34
+	 */
35
+	public $post;
36
+
37
+	/**
38
+	 * Post args.
39
+	 *
40
+	 * @var array
41
+	 */
42
+	protected $args;
43
+
44
+	/**
45
+	 * Post meta.
46
+	 *
47
+	 * @var array
48
+	 */
49
+	protected $meta;
50
+
51
+	/**
52
+	 * Whether the post has been saved.
53
+	 *
54
+	 * @var bool
55
+	 */
56
+	protected $new = true;
57
+
58
+
59
+	protected $old_github_path;
60
+
61
+	/**
62
+	 * Instantiates a new Post object
63
+	 *
64
+	 * @param int|array                 $id_or_args Either a post ID or an array of arguments.
65
+	 * @param Writing_On_GitHub_Api $api API object.
66
+	 *
67
+	 * @todo remove database operations from this method
68
+	 */
69
+	public function __construct( $id_or_args, Writing_On_GitHub_Api $api ) {
70
+		$this->api = $api;
71
+
72
+		if ( is_numeric( $id_or_args ) ) {
73
+			$this->id   = (int) $id_or_args;
74
+			$this->post = get_post( $this->id );
75
+			$this->new  = false;
76
+		}
77
+
78
+		if ( is_array( $id_or_args ) ) {
79
+			$this->args = $id_or_args;
80
+
81
+			if ( isset( $this->args['ID'] ) ) {
82
+				$this->post = get_post( $this->args['ID'] );
83
+
84
+				if ( $this->post ) {
85
+					$this->id  = $this->post->ID;
86
+					$this->new = false;
87
+				} else {
88
+					unset( $this->args['ID'] );
89
+				}
90
+			}
91
+		}
92
+	}
93
+
94
+	public function id() {
95
+		return $this->id;
96
+	}
97
+
98
+	/**
99
+	 * Returns the post type
100
+	 */
101
+	public function type() {
102
+		return $this->post->post_type;
103
+	}
104
+
105
+	/**
106
+	 * Returns the post type
107
+	 */
108
+	public function status() {
109
+		return $this->post->post_status;
110
+	}
111
+
112
+	/**
113
+	 * Returns the post name
114
+	 */
115
+	public function name() {
116
+		return $this->post->post_name;
117
+	}
118
+
119
+	/**
120
+	 * Returns true if the post has a password
121
+	 * @return bool
122
+	 */
123
+	public function has_password() {
124
+		return ! empty( $this->post->post_password );
125
+	}
126
+
127
+	/**
128
+	 * Combines the 2 content parts for GitHub
129
+	 */
130
+	public function github_content() {
131
+		$use_blob = wogh_is_dont_export_content() && $this->blob;
132
+		$content = $use_blob ?
133
+			$this->blob->post_content() :
134
+			$this->post_content();
135
+
136
+		return $this->front_matter() . $content;
137
+		// $content = $this->front_matter() . $content;
138
+		// $ending  = apply_filters( 'wogh_line_endings', "\n" );
139
+
140
+		// return preg_replace( '~(*BSR_ANYCRLF)\R~', $ending, $content );
141
+	}
142
+
143
+	/**
144
+	 * The post's YAML frontmatter
145
+	 *
146
+	 * Returns String the YAML frontmatter, ready to be written to the file
147
+	 */
148
+	public function front_matter() {
149
+		return "---\n" . spyc_dump( $this->meta() ) . "---\n";
150
+	}
151
+
152
+	/**
153
+	 * Returns the post_content
154
+	 *
155
+	 * Markdownify's the content if applicable
156
+	 */
157
+	public function post_content() {
158
+		$content = $this->post->post_content;
159
+
160
+		if ( function_exists( 'wpmarkdown_html_to_markdown' ) ) {
161
+			$content = wpmarkdown_html_to_markdown( $content );
162
+		} else if ( class_exists( 'WPCom_Markdown' ) ) {
163
+			if ( WPCom_Markdown::get_instance()->is_markdown( $this->post->ID ) ) {
164
+				$content = $this->post->post_content_filtered;
165
+			}
166
+		}
167
+
168
+		return apply_filters( 'wogh_content_export', $content, $this );
169
+	}
170
+
171
+	public function old_github_path() {
172
+		return $this->old_github_path;
173
+	}
174
+
175
+	public function set_old_github_path( $path ) {
176
+		$this->old_github_path = $path;
177
+		update_post_meta( $this->id, '_wogh_github_path', $path );
178
+	}
179
+
180
+
181
+	/**
182
+	 * Retrieves or calculates the proper GitHub path for a given post
183
+	 *
184
+	 * Returns (string) the path relative to repo root
185
+	 */
186
+	public function github_path() {
187
+		$path = $this->github_directory() . $this->github_filename();
188
+
189
+		return $path;
190
+	}
191
+
192
+	/**
193
+	 * Get GitHub directory based on post
194
+	 *
195
+	 * @return string
196
+	 */
197
+	public function github_directory() {
198
+		if ( 'publish' !== $this->status() ) {
199
+			return apply_filters( 'wogh_directory_unpublished', '_drafts/', $this );
200
+		}
201
+
202
+		$name = '';
203
+
204
+		switch ( $this->type() ) {
205
+			case 'post':
206
+				$name = 'posts';
207
+				break;
208
+			case 'page':
209
+				$name = 'pages';
210
+				break;
211
+			default:
212
+				$obj = get_post_type_object( $this->type() );
213
+
214
+				if ( $obj ) {
215
+					$name = strtolower( $obj->labels->name );
216
+				}
217
+
218
+				if ( ! $name ) {
219
+					$name = '';
220
+				}
221
+		}
222
+
223
+		if ( $name ) {
224
+			$name = '_' . $name . '/';
225
+		}
226
+
227
+		return apply_filters( 'wogh_directory_published', $name, $this );
228
+	}
229
+
230
+	/**
231
+	 * Build GitHub filename based on post
232
+	 */
233
+	public function github_filename() {
234
+		if ( 'post' === $this->type() ) {
235
+			$filename = get_the_time( 'Y/', $this->id ) . $this->get_name() . '.md';
236
+		} else {
237
+			$filename = $this->get_name() . '.md';
238
+		}
239
+
240
+		return apply_filters( 'wogh_filename', $filename, $this );
241
+	}
242
+
243
+	/**
244
+	 * Returns a post slug we can use in the GitHub filename
245
+	 *
246
+	 * @return string
247
+	 */
248
+	protected function get_name() {
249
+		if ( '' !== $this->name() ) {
250
+			return $this->name();
251
+		}
252
+
253
+		return sanitize_title( get_the_title( $this->post ) );
254
+	}
255
+
256
+	/**
257
+	 * is put on github
258
+	 * @return boolean
259
+	 */
260
+	public function is_on_github() {
261
+		$sha = get_post_meta( $this->id, '_wogh_sha', true );
262
+		$github_path = get_post_meta( $this->id, '_wogh_github_path', true );
263
+		if ( $sha && $github_path ) {
264
+			return true;
265
+		}
266
+		return false;
267
+	}
268
+
269
+	/**
270
+	 * Returns the URL for the post on GitHub.
271
+	 *
272
+	 * @return string
273
+	 */
274
+	public function github_view_url() {
275
+		$github_path = get_post_meta( $this->id, '_wogh_github_path', true );
276
+		$repository = $this->api->fetch()->repository();
277
+		$branch = $this->api->fetch()->branch();
278
+
279
+		return "https://github.com/$repository/blob/$branch/$github_path";
280
+	}
281
+
282
+	/**
283
+	 * Returns the URL for the post on GitHub.
284
+	 *
285
+	 * @return string
286
+	 */
287
+	public function github_edit_url() {
288
+		$github_path = get_post_meta( $this->id, '_wogh_github_path', true );
289
+		$repository = $this->api->fetch()->repository();
290
+		$branch = $this->api->fetch()->branch();
291
+
292
+		return "https://github.com/$repository/edit/$branch/$github_path";
293
+	}
294
+
295
+	/**
296
+	 * Retrieve post type directory from blob path.
297
+	 *
298
+	 * @param string $path Path string.
299
+	 *
300
+	 * @return string
301
+	 */
302
+	public function get_directory_from_path( $path ) {
303
+		$directory = explode( '/', $path );
304
+		$directory = count( $directory ) > 0 ? $directory[0] : '';
305
+
306
+		return $directory;
307
+	}
308
+
309
+	/**
310
+	 * Determines the last author to modify the post
311
+	 *
312
+	 * Returns Array an array containing the author name and email
313
+	 */
314
+	public function last_modified_author() {
315
+		if ( $last_id = get_post_meta( $this->id, '_edit_last', true ) ) {
316
+			$user = get_userdata( $last_id );
317
+
318
+			if ( $user ) {
319
+				return array( 'name' => $user->display_name, 'email' => $user->user_email );
320
+			}
321
+		}
322
+
323
+		return array();
324
+	}
325
+
326
+	/**
327
+	 * The post's sha
328
+	 * Cached as post meta, or will make a live call if need be
329
+	 *
330
+	 * Returns String the sha1 hash
331
+	 */
332
+	public function sha() {
333
+		$sha = get_post_meta( $this->id, '_wogh_sha', true );
334
+
335
+		// If we've done a full export and we have no sha
336
+		// then we should try a live check to see if it exists.
337
+		// if ( ! $sha && 'yes' === get_option( '_wogh_fully_exported' ) ) {
338
+
339
+		//  // @todo could we eliminate this by calling down the full tree and searching it
340
+		//  $data = $this->api->fetch()->remote_contents( $this );
341
+
342
+		//  if ( ! is_wp_error( $data ) ) {
343
+		//      update_post_meta( $this->id, '_wogh_sha', $data->sha );
344
+		//      $sha = $data->sha;
345
+		//  }
346
+		// }
347
+
348
+		// if the sha still doesn't exist, then it's empty
349
+		if ( ! $sha || is_wp_error( $sha ) ) {
350
+			$sha = '';
351
+		}
352
+
353
+		return $sha;
354
+	}
355
+
356
+	/**
357
+	 * Save the sha to post
358
+	 *
359
+	 * @param string $sha
360
+	 */
361
+	public function set_sha( $sha ) {
362
+		update_post_meta( $this->id, '_wogh_sha', $sha );
363
+	}
364
+
365
+	/**
366
+	 * The post's metadata
367
+	 *
368
+	 * Returns Array the post's metadata
369
+	 */
370
+	public function meta() {
371
+		$meta = array(
372
+			'ID'           => $this->id,
373
+			'post_title'   => get_the_title( $this->post ),
374
+			'post_name'    => $this->post->post_name,
375
+			'author'       => ( $author = get_userdata( $this->post->post_author ) ) ? $author->display_name : '',
376
+			'post_date'    => $this->post->post_date,
377
+			'post_excerpt' => $this->post->post_excerpt,
378
+			'layout'       => get_post_type( $this->post ),
379
+			'link'         => get_permalink( $this->post ),
380
+			'published'    => 'publish' === $this->status() ? true : false,
381
+			'tags'         => wp_get_post_tags( $this->id, array( 'fields' => 'names' ) ),
382
+			'categories'   => wp_get_post_categories( $this->id, array( 'fields' => 'names' ) )
383
+		);
384
+		if ( empty($this->post->post_name) ) {
385
+			unset($meta['post_name']);
386
+		}
387
+		if ( empty($this->post->post_excerpt) ) {
388
+			unset($meta['post_excerpt']);
389
+		}
390
+		if ( 'yes' == get_option('wogh_ignore_author') ) {
391
+			unset($meta['author']);
392
+		}
393
+
394
+		//convert traditional post_meta values, hide hidden values, skip already populated values
395
+		// foreach ( get_post_custom( $this->id ) as $key => $value ) {
396
+
397
+		//  if ( '_' === substr( $key, 0, 1 ) || isset( $meta[ $key ] ) ) {
398
+		//      continue;
399
+		//  }
400
+
401
+		//  $meta[ $key ] = $value;
402
+
403
+		// }
404
+
405
+		return apply_filters( 'wogh_post_meta', $meta, $this );
406
+	}
407
+
408
+	/**
409
+	 * Returns whether the Post has been saved in the DB yet.
410
+	 *
411
+	 * @return bool
412
+	 */
413
+	public function is_new() {
414
+		return $this->new;
415
+	}
416
+
417
+	/**
418
+	 * Sets the Post's meta.
419
+	 *
420
+	 * @param array $meta
421
+	 */
422
+	public function set_meta( $meta ) {
423
+		$this->meta = $meta;
424
+	}
425
+
426
+	/**
427
+	 * Returns the Post's arguments.
428
+	 *
429
+	 * @return array
430
+	 */
431
+	public function get_args() {
432
+		return $this->args;
433
+	}
434
+
435
+	/**
436
+	 * Returns the Post's meta.
437
+	 *
438
+	 * @return array
439
+	 */
440
+	public function get_meta() {
441
+		return $this->meta;
442
+	}
443
+
444
+	/**
445
+	 * Get the blob
446
+	 * @return Writing_On_GitHub_Blob
447
+	 */
448
+	public function get_blob() {
449
+		return $this->blob;
450
+	}
451
+
452
+	/**
453
+	 * Set the blob
454
+	 * @param Writing_On_GitHub_Blob $blob
455
+	 */
456
+	public function set_blob( Writing_On_GitHub_Blob $blob ) {
457
+		$this->blob = $blob;
458
+	}
459
+
460
+	/**
461
+	 * Sets the Post's WP_Post object.
462
+	 *
463
+	 * @param WP_Post $post
464
+	 *
465
+	 * @return $this
466
+	 */
467
+	public function set_post( WP_Post $post ) {
468
+		$this->post = $post;
469
+		$this->id   = $post->ID;
470
+
471
+		return $this;
472
+	}
473
+
474
+	/**
475
+	 * Transforms the Post into a Blob.
476
+	 *
477
+	 * @return Writing_On_GitHub_Blob
478
+	 */
479
+	public function to_blob() {
480
+		$data = new stdClass;
481
+
482
+		$data->path    = $this->github_path();
483
+		$data->content = $this->github_content();
484
+		$data->sha     = $this->sha();
485
+
486
+		return new Writing_On_GitHub_Blob( $data );
487
+	}
488 488
 }
Please login to merge, or discard this patch.
Spacing   +62 added lines, -63 removed lines patch added patch discarded remove patch
@@ -66,26 +66,26 @@  discard block
 block discarded – undo
66 66
      *
67 67
      * @todo remove database operations from this method
68 68
      */
69
-    public function __construct( $id_or_args, Writing_On_GitHub_Api $api ) {
69
+    public function __construct($id_or_args, Writing_On_GitHub_Api $api) {
70 70
         $this->api = $api;
71 71
 
72
-        if ( is_numeric( $id_or_args ) ) {
72
+        if (is_numeric($id_or_args)) {
73 73
             $this->id   = (int) $id_or_args;
74
-            $this->post = get_post( $this->id );
74
+            $this->post = get_post($this->id);
75 75
             $this->new  = false;
76 76
         }
77 77
 
78
-        if ( is_array( $id_or_args ) ) {
78
+        if (is_array($id_or_args)) {
79 79
             $this->args = $id_or_args;
80 80
 
81
-            if ( isset( $this->args['ID'] ) ) {
82
-                $this->post = get_post( $this->args['ID'] );
81
+            if (isset($this->args['ID'])) {
82
+                $this->post = get_post($this->args['ID']);
83 83
 
84
-                if ( $this->post ) {
84
+                if ($this->post) {
85 85
                     $this->id  = $this->post->ID;
86 86
                     $this->new = false;
87 87
                 } else {
88
-                    unset( $this->args['ID'] );
88
+                    unset($this->args['ID']);
89 89
                 }
90 90
             }
91 91
         }
@@ -121,7 +121,7 @@  discard block
 block discarded – undo
121 121
      * @return bool
122 122
      */
123 123
     public function has_password() {
124
-        return ! empty( $this->post->post_password );
124
+        return ! empty($this->post->post_password);
125 125
     }
126 126
 
127 127
     /**
@@ -130,8 +130,7 @@  discard block
 block discarded – undo
130 130
     public function github_content() {
131 131
         $use_blob = wogh_is_dont_export_content() && $this->blob;
132 132
         $content = $use_blob ?
133
-            $this->blob->post_content() :
134
-            $this->post_content();
133
+            $this->blob->post_content() : $this->post_content();
135 134
 
136 135
         return $this->front_matter() . $content;
137 136
         // $content = $this->front_matter() . $content;
@@ -146,7 +145,7 @@  discard block
 block discarded – undo
146 145
      * Returns String the YAML frontmatter, ready to be written to the file
147 146
      */
148 147
     public function front_matter() {
149
-        return "---\n" . spyc_dump( $this->meta() ) . "---\n";
148
+        return "---\n" . spyc_dump($this->meta()) . "---\n";
150 149
     }
151 150
 
152 151
     /**
@@ -157,24 +156,24 @@  discard block
 block discarded – undo
157 156
     public function post_content() {
158 157
         $content = $this->post->post_content;
159 158
 
160
-        if ( function_exists( 'wpmarkdown_html_to_markdown' ) ) {
161
-            $content = wpmarkdown_html_to_markdown( $content );
162
-        } else if ( class_exists( 'WPCom_Markdown' ) ) {
163
-            if ( WPCom_Markdown::get_instance()->is_markdown( $this->post->ID ) ) {
159
+        if (function_exists('wpmarkdown_html_to_markdown')) {
160
+            $content = wpmarkdown_html_to_markdown($content);
161
+        } else if (class_exists('WPCom_Markdown')) {
162
+            if (WPCom_Markdown::get_instance()->is_markdown($this->post->ID)) {
164 163
                 $content = $this->post->post_content_filtered;
165 164
             }
166 165
         }
167 166
 
168
-        return apply_filters( 'wogh_content_export', $content, $this );
167
+        return apply_filters('wogh_content_export', $content, $this);
169 168
     }
170 169
 
171 170
     public function old_github_path() {
172 171
         return $this->old_github_path;
173 172
     }
174 173
 
175
-    public function set_old_github_path( $path ) {
174
+    public function set_old_github_path($path) {
176 175
         $this->old_github_path = $path;
177
-        update_post_meta( $this->id, '_wogh_github_path', $path );
176
+        update_post_meta($this->id, '_wogh_github_path', $path);
178 177
     }
179 178
 
180 179
 
@@ -195,13 +194,13 @@  discard block
 block discarded – undo
195 194
      * @return string
196 195
      */
197 196
     public function github_directory() {
198
-        if ( 'publish' !== $this->status() ) {
199
-            return apply_filters( 'wogh_directory_unpublished', '_drafts/', $this );
197
+        if ('publish' !== $this->status()) {
198
+            return apply_filters('wogh_directory_unpublished', '_drafts/', $this);
200 199
         }
201 200
 
202 201
         $name = '';
203 202
 
204
-        switch ( $this->type() ) {
203
+        switch ($this->type()) {
205 204
             case 'post':
206 205
                 $name = 'posts';
207 206
                 break;
@@ -209,35 +208,35 @@  discard block
 block discarded – undo
209 208
                 $name = 'pages';
210 209
                 break;
211 210
             default:
212
-                $obj = get_post_type_object( $this->type() );
211
+                $obj = get_post_type_object($this->type());
213 212
 
214
-                if ( $obj ) {
215
-                    $name = strtolower( $obj->labels->name );
213
+                if ($obj) {
214
+                    $name = strtolower($obj->labels->name);
216 215
                 }
217 216
 
218
-                if ( ! $name ) {
217
+                if ( ! $name) {
219 218
                     $name = '';
220 219
                 }
221 220
         }
222 221
 
223
-        if ( $name ) {
222
+        if ($name) {
224 223
             $name = '_' . $name . '/';
225 224
         }
226 225
 
227
-        return apply_filters( 'wogh_directory_published', $name, $this );
226
+        return apply_filters('wogh_directory_published', $name, $this);
228 227
     }
229 228
 
230 229
     /**
231 230
      * Build GitHub filename based on post
232 231
      */
233 232
     public function github_filename() {
234
-        if ( 'post' === $this->type() ) {
235
-            $filename = get_the_time( 'Y/', $this->id ) . $this->get_name() . '.md';
233
+        if ('post' === $this->type()) {
234
+            $filename = get_the_time('Y/', $this->id) . $this->get_name() . '.md';
236 235
         } else {
237 236
             $filename = $this->get_name() . '.md';
238 237
         }
239 238
 
240
-        return apply_filters( 'wogh_filename', $filename, $this );
239
+        return apply_filters('wogh_filename', $filename, $this);
241 240
     }
242 241
 
243 242
     /**
@@ -246,11 +245,11 @@  discard block
 block discarded – undo
246 245
      * @return string
247 246
      */
248 247
     protected function get_name() {
249
-        if ( '' !== $this->name() ) {
248
+        if ('' !== $this->name()) {
250 249
             return $this->name();
251 250
         }
252 251
 
253
-        return sanitize_title( get_the_title( $this->post ) );
252
+        return sanitize_title(get_the_title($this->post));
254 253
     }
255 254
 
256 255
     /**
@@ -258,9 +257,9 @@  discard block
 block discarded – undo
258 257
      * @return boolean
259 258
      */
260 259
     public function is_on_github() {
261
-        $sha = get_post_meta( $this->id, '_wogh_sha', true );
262
-        $github_path = get_post_meta( $this->id, '_wogh_github_path', true );
263
-        if ( $sha && $github_path ) {
260
+        $sha = get_post_meta($this->id, '_wogh_sha', true);
261
+        $github_path = get_post_meta($this->id, '_wogh_github_path', true);
262
+        if ($sha && $github_path) {
264 263
             return true;
265 264
         }
266 265
         return false;
@@ -272,7 +271,7 @@  discard block
 block discarded – undo
272 271
      * @return string
273 272
      */
274 273
     public function github_view_url() {
275
-        $github_path = get_post_meta( $this->id, '_wogh_github_path', true );
274
+        $github_path = get_post_meta($this->id, '_wogh_github_path', true);
276 275
         $repository = $this->api->fetch()->repository();
277 276
         $branch = $this->api->fetch()->branch();
278 277
 
@@ -285,7 +284,7 @@  discard block
 block discarded – undo
285 284
      * @return string
286 285
      */
287 286
     public function github_edit_url() {
288
-        $github_path = get_post_meta( $this->id, '_wogh_github_path', true );
287
+        $github_path = get_post_meta($this->id, '_wogh_github_path', true);
289 288
         $repository = $this->api->fetch()->repository();
290 289
         $branch = $this->api->fetch()->branch();
291 290
 
@@ -299,9 +298,9 @@  discard block
 block discarded – undo
299 298
      *
300 299
      * @return string
301 300
      */
302
-    public function get_directory_from_path( $path ) {
303
-        $directory = explode( '/', $path );
304
-        $directory = count( $directory ) > 0 ? $directory[0] : '';
301
+    public function get_directory_from_path($path) {
302
+        $directory = explode('/', $path);
303
+        $directory = count($directory) > 0 ? $directory[0] : '';
305 304
 
306 305
         return $directory;
307 306
     }
@@ -312,11 +311,11 @@  discard block
 block discarded – undo
312 311
      * Returns Array an array containing the author name and email
313 312
      */
314 313
     public function last_modified_author() {
315
-        if ( $last_id = get_post_meta( $this->id, '_edit_last', true ) ) {
316
-            $user = get_userdata( $last_id );
314
+        if ($last_id = get_post_meta($this->id, '_edit_last', true)) {
315
+            $user = get_userdata($last_id);
317 316
 
318
-            if ( $user ) {
319
-                return array( 'name' => $user->display_name, 'email' => $user->user_email );
317
+            if ($user) {
318
+                return array('name' => $user->display_name, 'email' => $user->user_email);
320 319
             }
321 320
         }
322 321
 
@@ -330,7 +329,7 @@  discard block
 block discarded – undo
330 329
      * Returns String the sha1 hash
331 330
      */
332 331
     public function sha() {
333
-        $sha = get_post_meta( $this->id, '_wogh_sha', true );
332
+        $sha = get_post_meta($this->id, '_wogh_sha', true);
334 333
 
335 334
         // If we've done a full export and we have no sha
336 335
         // then we should try a live check to see if it exists.
@@ -346,7 +345,7 @@  discard block
 block discarded – undo
346 345
         // }
347 346
 
348 347
         // if the sha still doesn't exist, then it's empty
349
-        if ( ! $sha || is_wp_error( $sha ) ) {
348
+        if ( ! $sha || is_wp_error($sha)) {
350 349
             $sha = '';
351 350
         }
352 351
 
@@ -358,8 +357,8 @@  discard block
 block discarded – undo
358 357
      *
359 358
      * @param string $sha
360 359
      */
361
-    public function set_sha( $sha ) {
362
-        update_post_meta( $this->id, '_wogh_sha', $sha );
360
+    public function set_sha($sha) {
361
+        update_post_meta($this->id, '_wogh_sha', $sha);
363 362
     }
364 363
 
365 364
     /**
@@ -370,24 +369,24 @@  discard block
 block discarded – undo
370 369
     public function meta() {
371 370
         $meta = array(
372 371
             'ID'           => $this->id,
373
-            'post_title'   => get_the_title( $this->post ),
372
+            'post_title'   => get_the_title($this->post),
374 373
             'post_name'    => $this->post->post_name,
375
-            'author'       => ( $author = get_userdata( $this->post->post_author ) ) ? $author->display_name : '',
374
+            'author'       => ($author = get_userdata($this->post->post_author)) ? $author->display_name : '',
376 375
             'post_date'    => $this->post->post_date,
377 376
             'post_excerpt' => $this->post->post_excerpt,
378
-            'layout'       => get_post_type( $this->post ),
379
-            'link'         => get_permalink( $this->post ),
377
+            'layout'       => get_post_type($this->post),
378
+            'link'         => get_permalink($this->post),
380 379
             'published'    => 'publish' === $this->status() ? true : false,
381
-            'tags'         => wp_get_post_tags( $this->id, array( 'fields' => 'names' ) ),
382
-            'categories'   => wp_get_post_categories( $this->id, array( 'fields' => 'names' ) )
380
+            'tags'         => wp_get_post_tags($this->id, array('fields' => 'names')),
381
+            'categories'   => wp_get_post_categories($this->id, array('fields' => 'names'))
383 382
         );
384
-        if ( empty($this->post->post_name) ) {
383
+        if (empty($this->post->post_name)) {
385 384
             unset($meta['post_name']);
386 385
         }
387
-        if ( empty($this->post->post_excerpt) ) {
386
+        if (empty($this->post->post_excerpt)) {
388 387
             unset($meta['post_excerpt']);
389 388
         }
390
-        if ( 'yes' == get_option('wogh_ignore_author') ) {
389
+        if ('yes' == get_option('wogh_ignore_author')) {
391 390
             unset($meta['author']);
392 391
         }
393 392
 
@@ -402,7 +401,7 @@  discard block
 block discarded – undo
402 401
 
403 402
         // }
404 403
 
405
-        return apply_filters( 'wogh_post_meta', $meta, $this );
404
+        return apply_filters('wogh_post_meta', $meta, $this);
406 405
     }
407 406
 
408 407
     /**
@@ -419,7 +418,7 @@  discard block
 block discarded – undo
419 418
      *
420 419
      * @param array $meta
421 420
      */
422
-    public function set_meta( $meta ) {
421
+    public function set_meta($meta) {
423 422
         $this->meta = $meta;
424 423
     }
425 424
 
@@ -453,7 +452,7 @@  discard block
 block discarded – undo
453 452
      * Set the blob
454 453
      * @param Writing_On_GitHub_Blob $blob
455 454
      */
456
-    public function set_blob( Writing_On_GitHub_Blob $blob ) {
455
+    public function set_blob(Writing_On_GitHub_Blob $blob) {
457 456
         $this->blob = $blob;
458 457
     }
459 458
 
@@ -464,7 +463,7 @@  discard block
 block discarded – undo
464 463
      *
465 464
      * @return $this
466 465
      */
467
-    public function set_post( WP_Post $post ) {
466
+    public function set_post(WP_Post $post) {
468 467
         $this->post = $post;
469 468
         $this->id   = $post->ID;
470 469
 
@@ -483,6 +482,6 @@  discard block
 block discarded – undo
483 482
         $data->content = $this->github_content();
484 483
         $data->sha     = $this->sha();
485 484
 
486
-        return new Writing_On_GitHub_Blob( $data );
485
+        return new Writing_On_GitHub_Blob($data);
487 486
     }
488 487
 }
Please login to merge, or discard this patch.
lib/function.php 2 patches
Indentation   +15 added lines, -15 removed lines patch added patch discarded remove patch
@@ -8,10 +8,10 @@  discard block
 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
 }
16 16
 
17 17
 /**
@@ -21,15 +21,15 @@  discard block
 block discarded – undo
21 21
  * @return bool
22 22
  */
23 23
 function wogh_equal_front_matter( $post, $blob ) {
24
-    $str1 = $post->front_matter();
25
-    $str2 = $blob->front_matter();
26
-    return trim($str1) === trim($str2);
24
+	$str1 = $post->front_matter();
25
+	$str2 = $blob->front_matter();
26
+	return trim($str1) === trim($str2);
27 27
 }
28 28
 
29 29
 function wogh_equal_path( $post, $blob ) {
30
-    $str1 = $post->github_path();
31
-    $str2 = $blob->path();
32
-    return trim($str1) === trim($str2);
30
+	$str1 = $post->github_path();
31
+	$str2 = $blob->path();
32
+	return trim($str1) === trim($str2);
33 33
 }
34 34
 
35 35
 /**
@@ -37,7 +37,7 @@  discard block
 block discarded – undo
37 37
  * @return bool
38 38
  */
39 39
 function wogh_is_dont_export_content() {
40
-    return 'yes' === get_option( 'wogh_dont_export_content' );
40
+	return 'yes' === get_option( 'wogh_dont_export_content' );
41 41
 }
42 42
 
43 43
 /**
@@ -47,8 +47,8 @@  discard block
 block discarded – undo
47 47
  * @return string
48 48
  */
49 49
 function wogh_git_sha( $content ) {
50
-    // $header = "blob $len\0"
51
-    // sha1($header . $content)
52
-    $len = strlen( $content );
53
-    return sha1( "blob $len\0$content" );
50
+	// $header = "blob $len\0"
51
+	// sha1($header . $content)
52
+	$len = strlen( $content );
53
+	return sha1( "blob $len\0$content" );
54 54
 }
Please login to merge, or discard this patch.
Spacing   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -7,9 +7,9 @@  discard block
 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
 }
@@ -20,13 +20,13 @@  discard block
 block discarded – undo
20 20
  * @param  Writing_On_GitHub_Blob $blob
21 21
  * @return bool
22 22
  */
23
-function wogh_equal_front_matter( $post, $blob ) {
23
+function wogh_equal_front_matter($post, $blob) {
24 24
     $str1 = $post->front_matter();
25 25
     $str2 = $blob->front_matter();
26 26
     return trim($str1) === trim($str2);
27 27
 }
28 28
 
29
-function wogh_equal_path( $post, $blob ) {
29
+function wogh_equal_path($post, $blob) {
30 30
     $str1 = $post->github_path();
31 31
     $str2 = $blob->path();
32 32
     return trim($str1) === trim($str2);
@@ -37,7 +37,7 @@  discard block
 block discarded – undo
37 37
  * @return bool
38 38
  */
39 39
 function wogh_is_dont_export_content() {
40
-    return 'yes' === get_option( 'wogh_dont_export_content' );
40
+    return 'yes' === get_option('wogh_dont_export_content');
41 41
 }
42 42
 
43 43
 /**
@@ -46,9 +46,9 @@  discard block
 block discarded – undo
46 46
  * @param  string $content
47 47
  * @return string
48 48
  */
49
-function wogh_git_sha( $content ) {
49
+function wogh_git_sha($content) {
50 50
     // $header = "blob $len\0"
51 51
     // sha1($header . $content)
52
-    $len = strlen( $content );
53
-    return sha1( "blob $len\0$content" );
52
+    $len = strlen($content);
53
+    return sha1("blob $len\0$content");
54 54
 }
Please login to merge, or discard this patch.