Completed
Push — master ( a743f8...41d0ad )
by litefeel
05:37
created
lib/semaphore.php 2 patches
Indentation   +51 added lines, -51 removed lines patch added patch discarded remove patch
@@ -9,55 +9,55 @@
 block discarded – undo
9 9
  */
10 10
 class Writing_On_GitHub_Semaphore {
11 11
 
12
-    /**
13
-     * Sempahore's option key.
14
-     */
15
-    const KEY = 'wogh_semaphore_lock';
16
-
17
-    /**
18
-     * Option key when semaphore is locked.
19
-     */
20
-    const VALUE_LOCKED = 'yes';
21
-
22
-    /**
23
-     * Option key when semaphore is unlocked.
24
-     */
25
-    const VALUE_UNLOCKED = 'no';
26
-
27
-    /**
28
-     * Clean up the old values on instantiation.
29
-     */
30
-    public function __construct() {
31
-        delete_option( self::KEY );
32
-    }
33
-
34
-    /**
35
-     * Checks if the Semaphore is open.
36
-     *
37
-     * Fails to report it's open if the the Api class can't make a call
38
-     * or the push lock has been enabled.
39
-     *
40
-     * @return bool
41
-     */
42
-    public function is_open() {
43
-        if ( self::VALUE_LOCKED === get_transient( self::KEY ) ) {
44
-            return false;
45
-        }
46
-
47
-        return true;
48
-    }
49
-
50
-    /**
51
-     * Enables the push lock.
52
-     */
53
-    public function lock() {
54
-        set_transient( self::KEY, self::VALUE_LOCKED, MINUTE_IN_SECONDS );
55
-    }
56
-
57
-    /**
58
-     * Disables the push lock.
59
-     */
60
-    public function unlock() {
61
-        set_transient( self::KEY, self::VALUE_UNLOCKED, MINUTE_IN_SECONDS );
62
-    }
12
+	/**
13
+	 * Sempahore's option key.
14
+	 */
15
+	const KEY = 'wogh_semaphore_lock';
16
+
17
+	/**
18
+	 * Option key when semaphore is locked.
19
+	 */
20
+	const VALUE_LOCKED = 'yes';
21
+
22
+	/**
23
+	 * Option key when semaphore is unlocked.
24
+	 */
25
+	const VALUE_UNLOCKED = 'no';
26
+
27
+	/**
28
+	 * Clean up the old values on instantiation.
29
+	 */
30
+	public function __construct() {
31
+		delete_option( self::KEY );
32
+	}
33
+
34
+	/**
35
+	 * Checks if the Semaphore is open.
36
+	 *
37
+	 * Fails to report it's open if the the Api class can't make a call
38
+	 * or the push lock has been enabled.
39
+	 *
40
+	 * @return bool
41
+	 */
42
+	public function is_open() {
43
+		if ( self::VALUE_LOCKED === get_transient( self::KEY ) ) {
44
+			return false;
45
+		}
46
+
47
+		return true;
48
+	}
49
+
50
+	/**
51
+	 * Enables the push lock.
52
+	 */
53
+	public function lock() {
54
+		set_transient( self::KEY, self::VALUE_LOCKED, MINUTE_IN_SECONDS );
55
+	}
56
+
57
+	/**
58
+	 * Disables the push lock.
59
+	 */
60
+	public function unlock() {
61
+		set_transient( self::KEY, self::VALUE_UNLOCKED, MINUTE_IN_SECONDS );
62
+	}
63 63
 }
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -28,7 +28,7 @@  discard block
 block discarded – undo
28 28
      * Clean up the old values on instantiation.
29 29
      */
30 30
     public function __construct() {
31
-        delete_option( self::KEY );
31
+        delete_option(self::KEY);
32 32
     }
33 33
 
34 34
     /**
@@ -40,7 +40,7 @@  discard block
 block discarded – undo
40 40
      * @return bool
41 41
      */
42 42
     public function is_open() {
43
-        if ( self::VALUE_LOCKED === get_transient( self::KEY ) ) {
43
+        if (self::VALUE_LOCKED === get_transient(self::KEY)) {
44 44
             return false;
45 45
         }
46 46
 
@@ -51,13 +51,13 @@  discard block
 block discarded – undo
51 51
      * Enables the push lock.
52 52
      */
53 53
     public function lock() {
54
-        set_transient( self::KEY, self::VALUE_LOCKED, MINUTE_IN_SECONDS );
54
+        set_transient(self::KEY, self::VALUE_LOCKED, MINUTE_IN_SECONDS);
55 55
     }
56 56
 
57 57
     /**
58 58
      * Disables the push lock.
59 59
      */
60 60
     public function unlock() {
61
-        set_transient( self::KEY, self::VALUE_UNLOCKED, MINUTE_IN_SECONDS );
61
+        set_transient(self::KEY, self::VALUE_UNLOCKED, MINUTE_IN_SECONDS);
62 62
     }
63 63
 }
Please login to merge, or discard this patch.
lib/request.php 2 patches
Spacing   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -34,7 +34,7 @@  discard block
 block discarded – undo
34 34
      *
35 35
      * @param Writing_On_GitHub $app Application container.
36 36
      */
37
-    public function __construct( Writing_On_GitHub $app ) {
37
+    public function __construct(Writing_On_GitHub $app) {
38 38
         $this->app = $app;
39 39
     }
40 40
 
@@ -49,8 +49,8 @@  discard block
 block discarded – undo
49 49
         $this->raw_data = $this->read_raw_data();
50 50
 
51 51
         // Validate request secret.
52
-        $hash = hash_hmac( 'sha1', $this->raw_data, $this->secret() );
53
-        if ( 'sha1=' . $hash !== $headers['X-Hub-Signature'] ) {
52
+        $hash = hash_hmac('sha1', $this->raw_data, $this->secret());
53
+        if ('sha1=' . $hash !== $headers['X-Hub-Signature']) {
54 54
             return false;
55 55
         }
56 56
 
@@ -90,7 +90,7 @@  discard block
 block discarded – undo
90 90
      * @return Writing_On_GitHub_Payload
91 91
      */
92 92
     public function payload() {
93
-        return new Writing_On_GitHub_Payload( $this->app, $this->raw_data );
93
+        return new Writing_On_GitHub_Payload($this->app, $this->raw_data);
94 94
     }
95 95
 
96 96
     /**
@@ -101,11 +101,11 @@  discard block
 block discarded – undo
101 101
      * @return array
102 102
      */
103 103
     protected function headers() {
104
-        if ( ! empty( $this->headers ) ) {
104
+        if ( ! empty($this->headers)) {
105 105
             return $this->headers;
106 106
         }
107 107
 
108
-        if ( function_exists( 'getallheaders' ) ) {
108
+        if (function_exists('getallheaders')) {
109 109
 
110 110
             $this->headers = getallheaders();
111 111
             return $this->headers;
@@ -115,9 +115,9 @@  discard block
 block discarded – undo
115 115
          * @see http://www.php.net/manual/en/function.getallheaders.php
116 116
          */
117 117
         $this->headers = array();
118
-        foreach ( $_SERVER as $name => $value ) {
119
-            if ( 'HTTP_' === substr( $name, 0, 5 ) ) {
120
-                $this->headers[ str_replace( ' ', '-', ucwords( strtolower( str_replace( '_', ' ', substr( $name, 5 ) ) ) ) ) ] = $value;
118
+        foreach ($_SERVER as $name => $value) {
119
+            if ('HTTP_' === substr($name, 0, 5)) {
120
+                $this->headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
121 121
             }
122 122
         }
123 123
 
@@ -130,7 +130,7 @@  discard block
 block discarded – undo
130 130
      * @return string
131 131
      */
132 132
     protected function read_raw_data() {
133
-        return file_get_contents( 'php://input' );
133
+        return file_get_contents('php://input');
134 134
     }
135 135
 
136 136
     /**
@@ -139,6 +139,6 @@  discard block
 block discarded – undo
139 139
      * @return string
140 140
      */
141 141
     protected function secret() {
142
-        return get_option( 'wogh_secret' );
142
+        return get_option('wogh_secret');
143 143
     }
144 144
 }
Please login to merge, or discard this patch.
Indentation   +135 added lines, -135 removed lines patch added patch discarded remove patch
@@ -9,139 +9,139 @@
 block discarded – undo
9 9
  */
10 10
 class Writing_On_GitHub_Request {
11 11
 
12
-    /**
13
-     * Application container.
14
-     *
15
-     * @var Writing_On_GitHub
16
-     */
17
-    protected $app;
18
-
19
-    /**
20
-     * Raw request data.
21
-     *
22
-     * @var string
23
-     */
24
-    protected $raw_data;
25
-
26
-    /**
27
-     * Headers
28
-     * @var array
29
-     */
30
-    protected $headers;
31
-
32
-    /**
33
-     * Writing_On_GitHub_Request constructor.
34
-     *
35
-     * @param Writing_On_GitHub $app Application container.
36
-     */
37
-    public function __construct( Writing_On_GitHub $app ) {
38
-        $this->app = $app;
39
-    }
40
-
41
-    /**
42
-     * Validates the header's secret.
43
-     *
44
-     * @return true|WP_Error
45
-     */
46
-    public function is_secret_valid() {
47
-        $headers = $this->headers();
48
-
49
-        $this->raw_data = $this->read_raw_data();
50
-
51
-        // Validate request secret.
52
-        $hash = hash_hmac( 'sha1', $this->raw_data, $this->secret() );
53
-        if ( 'sha1=' . $hash !== $headers['X-Hub-Signature'] ) {
54
-            return false;
55
-        }
56
-
57
-        //      [X-Hub-Signature] => sha1=3cf3da70de401f7dfff053392f60cc534efed3b4
58
-        //     [Content-Type] => application/json
59
-        //     [X-Github-Delivery] => b2102500-0acf-11e7-8acb-fd86a3497c2f
60
-        //     [X-Github-Event] => ping
61
-
62
-        return true;
63
-    }
64
-
65
-    /**
66
-     * Validates the ping event.
67
-     * @return boolean
68
-     */
69
-    public function is_ping() {
70
-        return 'ping' == $this->webhook_event();
71
-    }
72
-
73
-    /**
74
-     * Validates the push event.
75
-     * @return boolean
76
-     */
77
-    public function is_push() {
78
-        return 'push' == $this->webhook_event();
79
-    }
80
-
81
-    /**
82
-     * Return X-Github-Event in headers.
83
-     * @return string
84
-     */
85
-    public function webhook_event() {
86
-        $headers = $this->headers();
87
-        return $headers['X-Github-Event'];
88
-    }
89
-
90
-    /**
91
-     * Returns a payload object for the given request.
92
-     *
93
-     * @return Writing_On_GitHub_Payload
94
-     */
95
-    public function payload() {
96
-        return new Writing_On_GitHub_Payload( $this->app, $this->raw_data );
97
-    }
98
-
99
-    /**
100
-     * Cross-server header support.
101
-     *
102
-     * Returns an array of the request's headers.
103
-     *
104
-     * @return array
105
-     */
106
-    protected function headers() {
107
-        if ( ! empty( $this->headers ) ) {
108
-            return $this->headers;
109
-        }
110
-
111
-        if ( function_exists( 'getallheaders' ) ) {
112
-
113
-            $this->headers = getallheaders();
114
-            return $this->headers;
115
-        }
116
-        /**
117
-         * Nginx and pre 5.4 workaround.
118
-         * @see http://www.php.net/manual/en/function.getallheaders.php
119
-         */
120
-        $this->headers = array();
121
-        foreach ( $_SERVER as $name => $value ) {
122
-            if ( 'HTTP_' === substr( $name, 0, 5 ) ) {
123
-                $this->headers[ str_replace( ' ', '-', ucwords( strtolower( str_replace( '_', ' ', substr( $name, 5 ) ) ) ) ) ] = $value;
124
-            }
125
-        }
126
-
127
-        return $this->headers;
128
-    }
129
-
130
-    /**
131
-     * Reads the raw data from STDIN.
132
-     *
133
-     * @return string
134
-     */
135
-    protected function read_raw_data() {
136
-        return file_get_contents( 'php://input' );
137
-    }
138
-
139
-    /**
140
-     * Returns the Webhook secret
141
-     *
142
-     * @return string
143
-     */
144
-    protected function secret() {
145
-        return get_option( 'wogh_secret' );
146
-    }
12
+	/**
13
+	 * Application container.
14
+	 *
15
+	 * @var Writing_On_GitHub
16
+	 */
17
+	protected $app;
18
+
19
+	/**
20
+	 * Raw request data.
21
+	 *
22
+	 * @var string
23
+	 */
24
+	protected $raw_data;
25
+
26
+	/**
27
+	 * Headers
28
+	 * @var array
29
+	 */
30
+	protected $headers;
31
+
32
+	/**
33
+	 * Writing_On_GitHub_Request constructor.
34
+	 *
35
+	 * @param Writing_On_GitHub $app Application container.
36
+	 */
37
+	public function __construct( Writing_On_GitHub $app ) {
38
+		$this->app = $app;
39
+	}
40
+
41
+	/**
42
+	 * Validates the header's secret.
43
+	 *
44
+	 * @return true|WP_Error
45
+	 */
46
+	public function is_secret_valid() {
47
+		$headers = $this->headers();
48
+
49
+		$this->raw_data = $this->read_raw_data();
50
+
51
+		// Validate request secret.
52
+		$hash = hash_hmac( 'sha1', $this->raw_data, $this->secret() );
53
+		if ( 'sha1=' . $hash !== $headers['X-Hub-Signature'] ) {
54
+			return false;
55
+		}
56
+
57
+		//      [X-Hub-Signature] => sha1=3cf3da70de401f7dfff053392f60cc534efed3b4
58
+		//     [Content-Type] => application/json
59
+		//     [X-Github-Delivery] => b2102500-0acf-11e7-8acb-fd86a3497c2f
60
+		//     [X-Github-Event] => ping
61
+
62
+		return true;
63
+	}
64
+
65
+	/**
66
+	 * Validates the ping event.
67
+	 * @return boolean
68
+	 */
69
+	public function is_ping() {
70
+		return 'ping' == $this->webhook_event();
71
+	}
72
+
73
+	/**
74
+	 * Validates the push event.
75
+	 * @return boolean
76
+	 */
77
+	public function is_push() {
78
+		return 'push' == $this->webhook_event();
79
+	}
80
+
81
+	/**
82
+	 * Return X-Github-Event in headers.
83
+	 * @return string
84
+	 */
85
+	public function webhook_event() {
86
+		$headers = $this->headers();
87
+		return $headers['X-Github-Event'];
88
+	}
89
+
90
+	/**
91
+	 * Returns a payload object for the given request.
92
+	 *
93
+	 * @return Writing_On_GitHub_Payload
94
+	 */
95
+	public function payload() {
96
+		return new Writing_On_GitHub_Payload( $this->app, $this->raw_data );
97
+	}
98
+
99
+	/**
100
+	 * Cross-server header support.
101
+	 *
102
+	 * Returns an array of the request's headers.
103
+	 *
104
+	 * @return array
105
+	 */
106
+	protected function headers() {
107
+		if ( ! empty( $this->headers ) ) {
108
+			return $this->headers;
109
+		}
110
+
111
+		if ( function_exists( 'getallheaders' ) ) {
112
+
113
+			$this->headers = getallheaders();
114
+			return $this->headers;
115
+		}
116
+		/**
117
+		 * Nginx and pre 5.4 workaround.
118
+		 * @see http://www.php.net/manual/en/function.getallheaders.php
119
+		 */
120
+		$this->headers = array();
121
+		foreach ( $_SERVER as $name => $value ) {
122
+			if ( 'HTTP_' === substr( $name, 0, 5 ) ) {
123
+				$this->headers[ str_replace( ' ', '-', ucwords( strtolower( str_replace( '_', ' ', substr( $name, 5 ) ) ) ) ) ] = $value;
124
+			}
125
+		}
126
+
127
+		return $this->headers;
128
+	}
129
+
130
+	/**
131
+	 * Reads the raw data from STDIN.
132
+	 *
133
+	 * @return string
134
+	 */
135
+	protected function read_raw_data() {
136
+		return file_get_contents( 'php://input' );
137
+	}
138
+
139
+	/**
140
+	 * Returns the Webhook secret
141
+	 *
142
+	 * @return string
143
+	 */
144
+	protected function secret() {
145
+		return get_option( 'wogh_secret' );
146
+	}
147 147
 }
Please login to merge, or discard this patch.
lib/database.php 2 patches
Indentation   +508 added lines, -508 removed lines patch added patch discarded remove patch
@@ -9,512 +9,512 @@
 block discarded – undo
9 9
  */
10 10
 class Writing_On_GitHub_Database {
11 11
 
12
-    /**
13
-     * Application container.
14
-     *
15
-     * @var Writing_On_GitHub
16
-     */
17
-    protected $app;
18
-
19
-    /**
20
-     * Currently whitelisted post types.
21
-     *
22
-     * @var array
23
-     */
24
-    protected $whitelisted_post_types = array( 'post', 'page' );
25
-
26
-    /**
27
-     * Currently whitelisted post statuses.
28
-     *
29
-     * @var array
30
-     */
31
-    protected $whitelisted_post_statuses = array( 'publish' );
32
-
33
-    /**
34
-     * Instantiates a new Database object.
35
-     *
36
-     * @param Writing_On_GitHub $app Application container.
37
-     */
38
-    public function __construct( Writing_On_GitHub $app ) {
39
-        $this->app = $app;
40
-    }
41
-
42
-    /**
43
-     * Queries the database for all of the supported posts.
44
-     *
45
-     * @param  bool $force
46
-     *
47
-     * @return Writing_On_GitHub_Post[]|WP_Error
48
-     */
49
-    public function fetch_all_supported( $force = false ) {
50
-        $args  = array(
51
-            'post_type'   => $this->get_whitelisted_post_types(),
52
-            'post_status' => $this->get_whitelisted_post_statuses(),
53
-            'nopaging'    => true,
54
-            'fields'      => 'ids',
55
-        );
56
-
57
-        $query = new WP_Query( apply_filters( 'wogh_pre_fetch_all_supported', $args ) );
58
-
59
-        $post_ids = $query->get_posts();
60
-
61
-        if ( ! $post_ids ) {
62
-            return new WP_Error(
63
-                'no_results',
64
-                __( 'Querying for supported posts returned no results.', 'writing-on-github' )
65
-            );
66
-        }
67
-
68
-        /* @var Writing_On_GitHub_Post[] $results */
69
-        $results = array();
70
-        foreach ( $post_ids as $post_id ) {
71
-            // Do not export posts that have already been exported
72
-            if ( $force || ! get_post_meta( $post_id, '_wogh_sha', true ) ||
73
-                 ! get_post_meta( $post_id, '_wogh_github_path', true ) ) {
74
-
75
-                $results[] = new Writing_On_GitHub_Post( $post_id, $this->app->api() );
76
-            }
77
-        }
78
-
79
-        return $results;
80
-    }
81
-
82
-    /**
83
-     * Queries a post and returns it if it's supported.
84
-     *
85
-     * @param int $post_id Post ID to fetch.
86
-     *
87
-     * @return WP_Error|Writing_On_GitHub_Post
88
-     */
89
-    public function fetch_by_id( $post_id ) {
90
-        $post = new Writing_On_GitHub_Post( $post_id, $this->app->api() );
91
-
92
-        if ( ! $this->is_post_supported( $post ) ) {
93
-            return new WP_Error(
94
-                'unsupported_post',
95
-                sprintf(
96
-                    __(
97
-                        'Post ID %s is not supported by WOGH. See wiki to find out how to add support.',
98
-                        'writing-on-github'
99
-                    ),
100
-                    $post_id
101
-                )
102
-            );
103
-        }
104
-
105
-        return $post;
106
-    }
107
-
108
-    /**
109
-     * Save an post to database
110
-     * and associates their author as well as their latest
111
-     *
112
-     * @param  Writing_On_GitHub_Post $post [description]
113
-     * @return WP_Error|true
114
-     */
115
-    public function save_post( Writing_On_GitHub_Post $post ) {
116
-        $args = apply_filters( 'wogh_pre_import_args', $this->post_args( $post ), $post );
117
-
118
-        remove_filter( 'content_save_pre', 'wp_filter_post_kses' );
119
-        $post_id = $post->is_new() ?
120
-            wp_insert_post( $args, true ) :
121
-            wp_update_post( $args, true );
122
-        add_filter( 'content_save_pre', 'wp_filter_post_kses' );
123
-
124
-        if ( is_wp_error( $post_id ) ) {
125
-            /* @var WP_Error $post_id */
126
-            return $post_id;
127
-        }
128
-
129
-        if ( $post->is_new() ) {
130
-            $author = false;
131
-            $meta = $post->get_meta();
132
-            if ( ! empty( $meta ) && ! empty( $meta['author'] ) ) {
133
-                $author = $meta['author'];
134
-            }
135
-            $user    = $this->fetch_commit_user( $author );
136
-            $user_id = is_wp_error( $user ) ? 0 : $user->ID;
137
-            $this->set_post_author( $post_id, $user_id );
138
-        }
139
-
140
-        $post->set_post( get_post( $post_id ) );
141
-
142
-        $meta = apply_filters( 'wogh_pre_import_meta', $post->get_meta(), $post );
143
-
144
-        update_post_meta( $post_id, '_wogh_sha', $meta['_wogh_sha'] );
145
-
146
-        // unset( $meta['tags'] );
147
-        // unset( $meta['categories'] );
148
-        // unset( $meta['author'] );
149
-        // unset( $meta['post_date'] );
150
-        // unset( $meta['post_excerpt'] );
151
-        // unset( $meta['permalink'] );
152
-        // unset( $meta['link'] );
153
-
154
-        // foreach ( $meta as $key => $value ) {
155
-        //  update_post_meta( $post_id, $key, $value );
156
-        // }
157
-        return true;
158
-    }
159
-
160
-    protected function post_args( $post ) {
161
-        $args = $post->get_args();
162
-        $meta = $post->get_meta();
163
-
164
-        // prevent backslash loss
165
-        $args['post_content'] = addslashes( $args['post_content'] );
166
-
167
-        // update tags
168
-        if ( ! empty( $meta['tags'] ) ) {
169
-            $args['tags_input'] = $meta['tags'];
170
-        }
171
-
172
-        // update categories
173
-        if ( ! empty( $meta['categories'] ) ) {
174
-            $categories = $meta['categories'];
175
-            if ( ! is_array( $categories ) ) {
176
-                $categories = array( $categories );
177
-            }
178
-            $terms = get_terms( array(
179
-                'taxonomy' => 'category',
180
-                'fields' => 'id=>name',
181
-                'hide_empty' => 0,
182
-                'name' => $categories
183
-                )
184
-            );
185
-            $map = array();
186
-            foreach ( $categories as $name ) {
187
-                $map[$name] = 1;
188
-            }
189
-
190
-            $ids = array();
191
-            if ( ! empty( $terms ) ) {
192
-                foreach ( $terms as $id => $name ) {
193
-                    $ids[] = $id;
194
-                    unset( $map[$name] );
195
-                }
196
-            }
197
-
198
-            // create new terms
199
-            if ( ! empty( $map ) ) {
200
-                foreach ( $map as $name => $value ) {
201
-                    $term = wp_insert_term( $name, 'category', array( 'parent' => 0 ) );
202
-                    // array('term_id' => $term_id, 'term_taxonomy_id' => $tt_id);
203
-                    $ids[] = $term['term_id'];
204
-                }
205
-            }
206
-
207
-            $args['post_category'] = $ids;
208
-        }
209
-
210
-        return $args;
211
-    }
212
-
213
-    private function get_post_id_by_filename( $filename, $pattern  ) {
214
-        preg_match( $pattern , $filename, $matches );
215
-        $title = $matches[4];
216
-
217
-        $query = new WP_Query( array(
218
-            'name'     => $title,
219
-            'posts_per_page' => 1,
220
-            'post_type' => $this->get_whitelisted_post_types(),
221
-            'fields'         => 'ids',
222
-        ) );
223
-
224
-        $post_id = $query->get_posts();
225
-        $post_id = array_pop( $post_id );
226
-        return $post_id;
227
-    }
228
-
229
-    /**
230
-     * Deletes a post from the database based on its GitHub path.
231
-     *
232
-     * @param string $path Path of Post to delete.
233
-     *
234
-     * @return string|WP_Error
235
-     */
236
-    public function delete_post_by_path( $path ) {
237
-        $query = new WP_Query( array(
238
-            'meta_key'       => '_wogh_github_path',
239
-            'meta_value'     => $path,
240
-            'meta_compare'   => '=',
241
-            'posts_per_page' => 1,
242
-            'fields'         => 'ids',
243
-        ) );
244
-
245
-        $post_id = $query->get_posts();
246
-        $post_id = array_pop( $post_id );
247
-
248
-        if ( ! $post_id ) {
249
-            $parts     = explode( '/', $path );
250
-            $filename  = array_pop( $parts );
251
-            $directory = $parts ? array_shift( $parts ) : '';
252
-
253
-            if ( false !== strpos( $directory, 'post' ) ) {
254
-                $post_id = get_post_id_by_filename( $filename, '/([0-9]{4})-([0-9]{2})-([0-9]{2})-(.*)\.md/' );
255
-            }
256
-
257
-            if ( ! $post_id ) {
258
-                $post_id = get_post_id_by_filename( $filename, '/(.*)\.md/' );
259
-            }
260
-        }
261
-
262
-        if ( ! $post_id ) {
263
-            return new WP_Error(
264
-                'path_not_found',
265
-                sprintf(
266
-                    __( 'Post not found for path %s.', 'writing-on-github' ),
267
-                    $path
268
-                )
269
-            );
270
-        }
271
-
272
-        $result = wp_delete_post( $post_id );
273
-
274
-        // If deleting fails...
275
-        if ( false === $result ) {
276
-            $post = get_post( $post_id );
277
-
278
-            // ...and the post both exists and isn't in the trash...
279
-            if ( $post && 'trash' !== $post->post_status ) {
280
-                // ... then something went wrong.
281
-                return new WP_Error(
282
-                    'db_error',
283
-                    sprintf(
284
-                        __( 'Failed to delete post ID %d.', 'writing-on-github' ),
285
-                        $post_id
286
-                    )
287
-                );
288
-            }
289
-        }
290
-
291
-        return sprintf(
292
-            __( 'Successfully deleted post ID %d.', 'writing-on-github' ),
293
-            $post_id
294
-        );
295
-    }
296
-
297
-    public function delete_post( $post_id ) {
298
-        $result = wp_delete_post( $post_id );
299
-
300
-        // If deleting fails...
301
-        if ( false === $result ) {
302
-            $post = get_post( $post_id );
303
-
304
-            // ...and the post both exists and isn't in the trash...
305
-            if ( $post && 'trash' !== $post->post_status ) {
306
-                // ... then something went wrong.
307
-                return new WP_Error(
308
-                    'db_error',
309
-                    sprintf(
310
-                        __( 'Failed to delete post ID %d.', 'writing-on-github' ),
311
-                        $post_id
312
-                    )
313
-                );
314
-            }
315
-        }
316
-
317
-        return sprintf(
318
-            __( 'Successfully deleted post ID %d.', 'writing-on-github' ),
319
-            $post_id
320
-        );
321
-    }
322
-
323
-    /**
324
-     * Returns the list of post type permitted.
325
-     *
326
-     * @return array
327
-     */
328
-    protected function get_whitelisted_post_types() {
329
-        return apply_filters( 'wogh_whitelisted_post_types', $this->whitelisted_post_types );
330
-    }
331
-
332
-    /**
333
-     * Returns the list of post status permitted.
334
-     *
335
-     * @return array
336
-     */
337
-    protected function get_whitelisted_post_statuses() {
338
-        return apply_filters( 'wogh_whitelisted_post_statuses', $this->whitelisted_post_statuses );
339
-    }
340
-
341
-    /**
342
-     * Formats a whitelist array for a query.
343
-     *
344
-     * @param array $whitelist Whitelisted posts to format into query.
345
-     *
346
-     * @return string Whitelist formatted for query
347
-     */
348
-    protected function format_for_query( $whitelist ) {
349
-        foreach ( $whitelist as $key => $value ) {
350
-            $whitelist[ $key ] = "'$value'";
351
-        }
352
-
353
-        return implode( ', ', $whitelist );
354
-    }
355
-
356
-    /**
357
-     * Verifies that both the post's status & type
358
-     * are currently whitelisted
359
-     *
360
-     * @param  Writing_On_GitHub_Post $post Post to verify.
361
-     *
362
-     * @return boolean                          True if supported, false if not.
363
-     */
364
-    protected function is_post_supported( Writing_On_GitHub_Post $post ) {
365
-        if ( wp_is_post_revision( $post->id ) ) {
366
-            return false;
367
-        }
368
-
369
-        // We need to allow trashed posts to be queried, but they are not whitelisted for export.
370
-        if ( ! in_array( $post->status(), $this->get_whitelisted_post_statuses() ) && 'trash' !== $post->status() ) {
371
-            return false;
372
-        }
373
-
374
-        if ( ! in_array( $post->type(), $this->get_whitelisted_post_types() ) ) {
375
-            return false;
376
-        }
377
-
378
-        if ( $post->has_password() ) {
379
-            return false;
380
-        }
381
-
382
-        return apply_filters( 'wogh_is_post_supported', true, $post );
383
-    }
384
-
385
-    /**
386
-     * Retrieves the commit user for a provided display name
387
-     *
388
-     * Searches for a user with provided display name or returns
389
-     * the default user saved in the database.
390
-     *
391
-     * @param string $display_name User display name to search for.
392
-     *
393
-     * @return WP_Error|WP_User
394
-     */
395
-    protected function fetch_commit_user( $display_name ) {
396
-        // If we can't find a user and a default hasn't been set,
397
-        // we're just going to set the revision author to 0.
398
-        $user = false;
399
-
400
-        if ( ! empty( $display_name ) ) {
401
-            $search_string = esc_attr( $display_name );
402
-            $query = new WP_User_Query( array(
403
-                'search'         => "{$search_string}",
404
-                'search_columns' => array(
405
-                    'display_name',
406
-                    'user_nicename',
407
-                    'user_login',
408
-                )
409
-            ) );
410
-            $users = $query->get_results();
411
-            $user = empty($users) ? false : $users[0];
412
-        }
413
-
414
-        if ( ! $user ) {
415
-            // Use the default user.
416
-            $user = get_user_by( 'id', (int) get_option( 'wogh_default_user' ) );
417
-        }
418
-
419
-        if ( ! $user ) {
420
-            return new WP_Error(
421
-                'user_not_found',
422
-                sprintf(
423
-                    __( 'Commit user not found for email %s', 'writing-on-github' ),
424
-                    $email
425
-                )
426
-            );
427
-        }
428
-
429
-        return $user;
430
-    }
431
-
432
-    // /**
433
-    //  * Sets the author latest revision
434
-    //  * of the provided post ID to the provided user.
435
-    //  *
436
-    //  * @param int $post_id Post ID to update revision author.
437
-    //  * @param int $user_id User ID for revision author.
438
-    //  *
439
-    //  * @return string|WP_Error
440
-    //  */
441
-    // protected function set_revision_author( $post_id, $user_id ) {
442
-    //  $revision = wp_get_post_revisions( $post_id );
443
-
444
-    //  if ( ! $revision ) {
445
-    //      $new_revision = wp_save_post_revision( $post_id );
446
-
447
-    //      if ( ! $new_revision || is_wp_error( $new_revision ) ) {
448
-    //          return new WP_Error( 'db_error', 'There was a problem saving a new revision.' );
449
-    //      }
450
-
451
-    //      // `wp_save_post_revision` returns the ID, whereas `get_post_revision` returns the whole object
452
-    //      // in order to be consistent, let's make sure we have the whole object before continuing.
453
-    //      $revision = get_post( $new_revision );
454
-
455
-    //      if ( ! $revision ) {
456
-    //          return new WP_Error( 'db_error', 'There was a problem retrieving the newly recreated revision.' );
457
-    //      }
458
-    //  } else {
459
-    //      $revision = array_shift( $revision );
460
-    //  }
461
-
462
-    //  return $this->set_post_author( $revision->ID, $user_id );
463
-    // }
464
-
465
-    /**
466
-     * Updates the user ID for the provided post ID.
467
-     *
468
-     * Bypassing triggering any hooks, including creating new revisions.
469
-     *
470
-     * @param int $post_id Post ID to update.
471
-     * @param int $user_id User ID to update to.
472
-     *
473
-     * @return string|WP_Error
474
-     */
475
-    protected function set_post_author( $post_id, $user_id ) {
476
-        global $wpdb;
477
-
478
-        $result = $wpdb->update(
479
-            $wpdb->posts,
480
-            array(
481
-                'post_author' => (int) $user_id,
482
-            ),
483
-            array(
484
-                'ID' => (int) $post_id,
485
-            ),
486
-            array( '%d' ),
487
-            array( '%d' )
488
-        );
489
-
490
-        if ( false === $result ) {
491
-            return new WP_Error( 'db_error', $wpdb->last_error );
492
-        }
493
-
494
-        if ( 0 === $result ) {
495
-            return sprintf(
496
-                __( 'No change for post ID %d.', 'writing-on-github' ),
497
-                $post_id
498
-            );
499
-        }
500
-
501
-        clean_post_cache( $post_id );
502
-
503
-        return sprintf(
504
-            __( 'Successfully updated post ID %d.', 'writing-on-github' ),
505
-            $post_id
506
-        );
507
-    }
508
-
509
-    // *
510
-    //  * Update the provided post's blob sha.
511
-    //  *
512
-    //  * @param Writing_On_GitHub_Post $post Post to update.
513
-    //  * @param string                     $sha Sha to update to.
514
-    //  *
515
-    //  * @return bool|int
516
-
517
-    // public function set_post_sha( $post, $sha ) {
518
-    //  return update_post_meta( $post->id, '_wogh_sha', $sha );
519
-    // }
12
+	/**
13
+	 * Application container.
14
+	 *
15
+	 * @var Writing_On_GitHub
16
+	 */
17
+	protected $app;
18
+
19
+	/**
20
+	 * Currently whitelisted post types.
21
+	 *
22
+	 * @var array
23
+	 */
24
+	protected $whitelisted_post_types = array( 'post', 'page' );
25
+
26
+	/**
27
+	 * Currently whitelisted post statuses.
28
+	 *
29
+	 * @var array
30
+	 */
31
+	protected $whitelisted_post_statuses = array( 'publish' );
32
+
33
+	/**
34
+	 * Instantiates a new Database object.
35
+	 *
36
+	 * @param Writing_On_GitHub $app Application container.
37
+	 */
38
+	public function __construct( Writing_On_GitHub $app ) {
39
+		$this->app = $app;
40
+	}
41
+
42
+	/**
43
+	 * Queries the database for all of the supported posts.
44
+	 *
45
+	 * @param  bool $force
46
+	 *
47
+	 * @return Writing_On_GitHub_Post[]|WP_Error
48
+	 */
49
+	public function fetch_all_supported( $force = false ) {
50
+		$args  = array(
51
+			'post_type'   => $this->get_whitelisted_post_types(),
52
+			'post_status' => $this->get_whitelisted_post_statuses(),
53
+			'nopaging'    => true,
54
+			'fields'      => 'ids',
55
+		);
56
+
57
+		$query = new WP_Query( apply_filters( 'wogh_pre_fetch_all_supported', $args ) );
58
+
59
+		$post_ids = $query->get_posts();
60
+
61
+		if ( ! $post_ids ) {
62
+			return new WP_Error(
63
+				'no_results',
64
+				__( 'Querying for supported posts returned no results.', 'writing-on-github' )
65
+			);
66
+		}
67
+
68
+		/* @var Writing_On_GitHub_Post[] $results */
69
+		$results = array();
70
+		foreach ( $post_ids as $post_id ) {
71
+			// Do not export posts that have already been exported
72
+			if ( $force || ! get_post_meta( $post_id, '_wogh_sha', true ) ||
73
+				 ! get_post_meta( $post_id, '_wogh_github_path', true ) ) {
74
+
75
+				$results[] = new Writing_On_GitHub_Post( $post_id, $this->app->api() );
76
+			}
77
+		}
78
+
79
+		return $results;
80
+	}
81
+
82
+	/**
83
+	 * Queries a post and returns it if it's supported.
84
+	 *
85
+	 * @param int $post_id Post ID to fetch.
86
+	 *
87
+	 * @return WP_Error|Writing_On_GitHub_Post
88
+	 */
89
+	public function fetch_by_id( $post_id ) {
90
+		$post = new Writing_On_GitHub_Post( $post_id, $this->app->api() );
91
+
92
+		if ( ! $this->is_post_supported( $post ) ) {
93
+			return new WP_Error(
94
+				'unsupported_post',
95
+				sprintf(
96
+					__(
97
+						'Post ID %s is not supported by WOGH. See wiki to find out how to add support.',
98
+						'writing-on-github'
99
+					),
100
+					$post_id
101
+				)
102
+			);
103
+		}
104
+
105
+		return $post;
106
+	}
107
+
108
+	/**
109
+	 * Save an post to database
110
+	 * and associates their author as well as their latest
111
+	 *
112
+	 * @param  Writing_On_GitHub_Post $post [description]
113
+	 * @return WP_Error|true
114
+	 */
115
+	public function save_post( Writing_On_GitHub_Post $post ) {
116
+		$args = apply_filters( 'wogh_pre_import_args', $this->post_args( $post ), $post );
117
+
118
+		remove_filter( 'content_save_pre', 'wp_filter_post_kses' );
119
+		$post_id = $post->is_new() ?
120
+			wp_insert_post( $args, true ) :
121
+			wp_update_post( $args, true );
122
+		add_filter( 'content_save_pre', 'wp_filter_post_kses' );
123
+
124
+		if ( is_wp_error( $post_id ) ) {
125
+			/* @var WP_Error $post_id */
126
+			return $post_id;
127
+		}
128
+
129
+		if ( $post->is_new() ) {
130
+			$author = false;
131
+			$meta = $post->get_meta();
132
+			if ( ! empty( $meta ) && ! empty( $meta['author'] ) ) {
133
+				$author = $meta['author'];
134
+			}
135
+			$user    = $this->fetch_commit_user( $author );
136
+			$user_id = is_wp_error( $user ) ? 0 : $user->ID;
137
+			$this->set_post_author( $post_id, $user_id );
138
+		}
139
+
140
+		$post->set_post( get_post( $post_id ) );
141
+
142
+		$meta = apply_filters( 'wogh_pre_import_meta', $post->get_meta(), $post );
143
+
144
+		update_post_meta( $post_id, '_wogh_sha', $meta['_wogh_sha'] );
145
+
146
+		// unset( $meta['tags'] );
147
+		// unset( $meta['categories'] );
148
+		// unset( $meta['author'] );
149
+		// unset( $meta['post_date'] );
150
+		// unset( $meta['post_excerpt'] );
151
+		// unset( $meta['permalink'] );
152
+		// unset( $meta['link'] );
153
+
154
+		// foreach ( $meta as $key => $value ) {
155
+		//  update_post_meta( $post_id, $key, $value );
156
+		// }
157
+		return true;
158
+	}
159
+
160
+	protected function post_args( $post ) {
161
+		$args = $post->get_args();
162
+		$meta = $post->get_meta();
163
+
164
+		// prevent backslash loss
165
+		$args['post_content'] = addslashes( $args['post_content'] );
166
+
167
+		// update tags
168
+		if ( ! empty( $meta['tags'] ) ) {
169
+			$args['tags_input'] = $meta['tags'];
170
+		}
171
+
172
+		// update categories
173
+		if ( ! empty( $meta['categories'] ) ) {
174
+			$categories = $meta['categories'];
175
+			if ( ! is_array( $categories ) ) {
176
+				$categories = array( $categories );
177
+			}
178
+			$terms = get_terms( array(
179
+				'taxonomy' => 'category',
180
+				'fields' => 'id=>name',
181
+				'hide_empty' => 0,
182
+				'name' => $categories
183
+				)
184
+			);
185
+			$map = array();
186
+			foreach ( $categories as $name ) {
187
+				$map[$name] = 1;
188
+			}
189
+
190
+			$ids = array();
191
+			if ( ! empty( $terms ) ) {
192
+				foreach ( $terms as $id => $name ) {
193
+					$ids[] = $id;
194
+					unset( $map[$name] );
195
+				}
196
+			}
197
+
198
+			// create new terms
199
+			if ( ! empty( $map ) ) {
200
+				foreach ( $map as $name => $value ) {
201
+					$term = wp_insert_term( $name, 'category', array( 'parent' => 0 ) );
202
+					// array('term_id' => $term_id, 'term_taxonomy_id' => $tt_id);
203
+					$ids[] = $term['term_id'];
204
+				}
205
+			}
206
+
207
+			$args['post_category'] = $ids;
208
+		}
209
+
210
+		return $args;
211
+	}
212
+
213
+	private function get_post_id_by_filename( $filename, $pattern  ) {
214
+		preg_match( $pattern , $filename, $matches );
215
+		$title = $matches[4];
216
+
217
+		$query = new WP_Query( array(
218
+			'name'     => $title,
219
+			'posts_per_page' => 1,
220
+			'post_type' => $this->get_whitelisted_post_types(),
221
+			'fields'         => 'ids',
222
+		) );
223
+
224
+		$post_id = $query->get_posts();
225
+		$post_id = array_pop( $post_id );
226
+		return $post_id;
227
+	}
228
+
229
+	/**
230
+	 * Deletes a post from the database based on its GitHub path.
231
+	 *
232
+	 * @param string $path Path of Post to delete.
233
+	 *
234
+	 * @return string|WP_Error
235
+	 */
236
+	public function delete_post_by_path( $path ) {
237
+		$query = new WP_Query( array(
238
+			'meta_key'       => '_wogh_github_path',
239
+			'meta_value'     => $path,
240
+			'meta_compare'   => '=',
241
+			'posts_per_page' => 1,
242
+			'fields'         => 'ids',
243
+		) );
244
+
245
+		$post_id = $query->get_posts();
246
+		$post_id = array_pop( $post_id );
247
+
248
+		if ( ! $post_id ) {
249
+			$parts     = explode( '/', $path );
250
+			$filename  = array_pop( $parts );
251
+			$directory = $parts ? array_shift( $parts ) : '';
252
+
253
+			if ( false !== strpos( $directory, 'post' ) ) {
254
+				$post_id = get_post_id_by_filename( $filename, '/([0-9]{4})-([0-9]{2})-([0-9]{2})-(.*)\.md/' );
255
+			}
256
+
257
+			if ( ! $post_id ) {
258
+				$post_id = get_post_id_by_filename( $filename, '/(.*)\.md/' );
259
+			}
260
+		}
261
+
262
+		if ( ! $post_id ) {
263
+			return new WP_Error(
264
+				'path_not_found',
265
+				sprintf(
266
+					__( 'Post not found for path %s.', 'writing-on-github' ),
267
+					$path
268
+				)
269
+			);
270
+		}
271
+
272
+		$result = wp_delete_post( $post_id );
273
+
274
+		// If deleting fails...
275
+		if ( false === $result ) {
276
+			$post = get_post( $post_id );
277
+
278
+			// ...and the post both exists and isn't in the trash...
279
+			if ( $post && 'trash' !== $post->post_status ) {
280
+				// ... then something went wrong.
281
+				return new WP_Error(
282
+					'db_error',
283
+					sprintf(
284
+						__( 'Failed to delete post ID %d.', 'writing-on-github' ),
285
+						$post_id
286
+					)
287
+				);
288
+			}
289
+		}
290
+
291
+		return sprintf(
292
+			__( 'Successfully deleted post ID %d.', 'writing-on-github' ),
293
+			$post_id
294
+		);
295
+	}
296
+
297
+	public function delete_post( $post_id ) {
298
+		$result = wp_delete_post( $post_id );
299
+
300
+		// If deleting fails...
301
+		if ( false === $result ) {
302
+			$post = get_post( $post_id );
303
+
304
+			// ...and the post both exists and isn't in the trash...
305
+			if ( $post && 'trash' !== $post->post_status ) {
306
+				// ... then something went wrong.
307
+				return new WP_Error(
308
+					'db_error',
309
+					sprintf(
310
+						__( 'Failed to delete post ID %d.', 'writing-on-github' ),
311
+						$post_id
312
+					)
313
+				);
314
+			}
315
+		}
316
+
317
+		return sprintf(
318
+			__( 'Successfully deleted post ID %d.', 'writing-on-github' ),
319
+			$post_id
320
+		);
321
+	}
322
+
323
+	/**
324
+	 * Returns the list of post type permitted.
325
+	 *
326
+	 * @return array
327
+	 */
328
+	protected function get_whitelisted_post_types() {
329
+		return apply_filters( 'wogh_whitelisted_post_types', $this->whitelisted_post_types );
330
+	}
331
+
332
+	/**
333
+	 * Returns the list of post status permitted.
334
+	 *
335
+	 * @return array
336
+	 */
337
+	protected function get_whitelisted_post_statuses() {
338
+		return apply_filters( 'wogh_whitelisted_post_statuses', $this->whitelisted_post_statuses );
339
+	}
340
+
341
+	/**
342
+	 * Formats a whitelist array for a query.
343
+	 *
344
+	 * @param array $whitelist Whitelisted posts to format into query.
345
+	 *
346
+	 * @return string Whitelist formatted for query
347
+	 */
348
+	protected function format_for_query( $whitelist ) {
349
+		foreach ( $whitelist as $key => $value ) {
350
+			$whitelist[ $key ] = "'$value'";
351
+		}
352
+
353
+		return implode( ', ', $whitelist );
354
+	}
355
+
356
+	/**
357
+	 * Verifies that both the post's status & type
358
+	 * are currently whitelisted
359
+	 *
360
+	 * @param  Writing_On_GitHub_Post $post Post to verify.
361
+	 *
362
+	 * @return boolean                          True if supported, false if not.
363
+	 */
364
+	protected function is_post_supported( Writing_On_GitHub_Post $post ) {
365
+		if ( wp_is_post_revision( $post->id ) ) {
366
+			return false;
367
+		}
368
+
369
+		// We need to allow trashed posts to be queried, but they are not whitelisted for export.
370
+		if ( ! in_array( $post->status(), $this->get_whitelisted_post_statuses() ) && 'trash' !== $post->status() ) {
371
+			return false;
372
+		}
373
+
374
+		if ( ! in_array( $post->type(), $this->get_whitelisted_post_types() ) ) {
375
+			return false;
376
+		}
377
+
378
+		if ( $post->has_password() ) {
379
+			return false;
380
+		}
381
+
382
+		return apply_filters( 'wogh_is_post_supported', true, $post );
383
+	}
384
+
385
+	/**
386
+	 * Retrieves the commit user for a provided display name
387
+	 *
388
+	 * Searches for a user with provided display name or returns
389
+	 * the default user saved in the database.
390
+	 *
391
+	 * @param string $display_name User display name to search for.
392
+	 *
393
+	 * @return WP_Error|WP_User
394
+	 */
395
+	protected function fetch_commit_user( $display_name ) {
396
+		// If we can't find a user and a default hasn't been set,
397
+		// we're just going to set the revision author to 0.
398
+		$user = false;
399
+
400
+		if ( ! empty( $display_name ) ) {
401
+			$search_string = esc_attr( $display_name );
402
+			$query = new WP_User_Query( array(
403
+				'search'         => "{$search_string}",
404
+				'search_columns' => array(
405
+					'display_name',
406
+					'user_nicename',
407
+					'user_login',
408
+				)
409
+			) );
410
+			$users = $query->get_results();
411
+			$user = empty($users) ? false : $users[0];
412
+		}
413
+
414
+		if ( ! $user ) {
415
+			// Use the default user.
416
+			$user = get_user_by( 'id', (int) get_option( 'wogh_default_user' ) );
417
+		}
418
+
419
+		if ( ! $user ) {
420
+			return new WP_Error(
421
+				'user_not_found',
422
+				sprintf(
423
+					__( 'Commit user not found for email %s', 'writing-on-github' ),
424
+					$email
425
+				)
426
+			);
427
+		}
428
+
429
+		return $user;
430
+	}
431
+
432
+	// /**
433
+	//  * Sets the author latest revision
434
+	//  * of the provided post ID to the provided user.
435
+	//  *
436
+	//  * @param int $post_id Post ID to update revision author.
437
+	//  * @param int $user_id User ID for revision author.
438
+	//  *
439
+	//  * @return string|WP_Error
440
+	//  */
441
+	// protected function set_revision_author( $post_id, $user_id ) {
442
+	//  $revision = wp_get_post_revisions( $post_id );
443
+
444
+	//  if ( ! $revision ) {
445
+	//      $new_revision = wp_save_post_revision( $post_id );
446
+
447
+	//      if ( ! $new_revision || is_wp_error( $new_revision ) ) {
448
+	//          return new WP_Error( 'db_error', 'There was a problem saving a new revision.' );
449
+	//      }
450
+
451
+	//      // `wp_save_post_revision` returns the ID, whereas `get_post_revision` returns the whole object
452
+	//      // in order to be consistent, let's make sure we have the whole object before continuing.
453
+	//      $revision = get_post( $new_revision );
454
+
455
+	//      if ( ! $revision ) {
456
+	//          return new WP_Error( 'db_error', 'There was a problem retrieving the newly recreated revision.' );
457
+	//      }
458
+	//  } else {
459
+	//      $revision = array_shift( $revision );
460
+	//  }
461
+
462
+	//  return $this->set_post_author( $revision->ID, $user_id );
463
+	// }
464
+
465
+	/**
466
+	 * Updates the user ID for the provided post ID.
467
+	 *
468
+	 * Bypassing triggering any hooks, including creating new revisions.
469
+	 *
470
+	 * @param int $post_id Post ID to update.
471
+	 * @param int $user_id User ID to update to.
472
+	 *
473
+	 * @return string|WP_Error
474
+	 */
475
+	protected function set_post_author( $post_id, $user_id ) {
476
+		global $wpdb;
477
+
478
+		$result = $wpdb->update(
479
+			$wpdb->posts,
480
+			array(
481
+				'post_author' => (int) $user_id,
482
+			),
483
+			array(
484
+				'ID' => (int) $post_id,
485
+			),
486
+			array( '%d' ),
487
+			array( '%d' )
488
+		);
489
+
490
+		if ( false === $result ) {
491
+			return new WP_Error( 'db_error', $wpdb->last_error );
492
+		}
493
+
494
+		if ( 0 === $result ) {
495
+			return sprintf(
496
+				__( 'No change for post ID %d.', 'writing-on-github' ),
497
+				$post_id
498
+			);
499
+		}
500
+
501
+		clean_post_cache( $post_id );
502
+
503
+		return sprintf(
504
+			__( 'Successfully updated post ID %d.', 'writing-on-github' ),
505
+			$post_id
506
+		);
507
+	}
508
+
509
+	// *
510
+	//  * Update the provided post's blob sha.
511
+	//  *
512
+	//  * @param Writing_On_GitHub_Post $post Post to update.
513
+	//  * @param string                     $sha Sha to update to.
514
+	//  *
515
+	//  * @return bool|int
516
+
517
+	// public function set_post_sha( $post, $sha ) {
518
+	//  return update_post_meta( $post->id, '_wogh_sha', $sha );
519
+	// }
520 520
 }
Please login to merge, or discard this patch.
Spacing   +105 added lines, -106 removed lines patch added patch discarded remove patch
@@ -21,21 +21,21 @@  discard block
 block discarded – undo
21 21
      *
22 22
      * @var array
23 23
      */
24
-    protected $whitelisted_post_types = array( 'post', 'page' );
24
+    protected $whitelisted_post_types = array('post', 'page');
25 25
 
26 26
     /**
27 27
      * Currently whitelisted post statuses.
28 28
      *
29 29
      * @var array
30 30
      */
31
-    protected $whitelisted_post_statuses = array( 'publish' );
31
+    protected $whitelisted_post_statuses = array('publish');
32 32
 
33 33
     /**
34 34
      * Instantiates a new Database object.
35 35
      *
36 36
      * @param Writing_On_GitHub $app Application container.
37 37
      */
38
-    public function __construct( Writing_On_GitHub $app ) {
38
+    public function __construct(Writing_On_GitHub $app) {
39 39
         $this->app = $app;
40 40
     }
41 41
 
@@ -46,33 +46,33 @@  discard block
 block discarded – undo
46 46
      *
47 47
      * @return Writing_On_GitHub_Post[]|WP_Error
48 48
      */
49
-    public function fetch_all_supported( $force = false ) {
50
-        $args  = array(
49
+    public function fetch_all_supported($force = false) {
50
+        $args = array(
51 51
             'post_type'   => $this->get_whitelisted_post_types(),
52 52
             'post_status' => $this->get_whitelisted_post_statuses(),
53 53
             'nopaging'    => true,
54 54
             'fields'      => 'ids',
55 55
         );
56 56
 
57
-        $query = new WP_Query( apply_filters( 'wogh_pre_fetch_all_supported', $args ) );
57
+        $query = new WP_Query(apply_filters('wogh_pre_fetch_all_supported', $args));
58 58
 
59 59
         $post_ids = $query->get_posts();
60 60
 
61
-        if ( ! $post_ids ) {
61
+        if ( ! $post_ids) {
62 62
             return new WP_Error(
63 63
                 'no_results',
64
-                __( 'Querying for supported posts returned no results.', 'writing-on-github' )
64
+                __('Querying for supported posts returned no results.', 'writing-on-github')
65 65
             );
66 66
         }
67 67
 
68 68
         /* @var Writing_On_GitHub_Post[] $results */
69 69
         $results = array();
70
-        foreach ( $post_ids as $post_id ) {
70
+        foreach ($post_ids as $post_id) {
71 71
             // Do not export posts that have already been exported
72
-            if ( $force || ! get_post_meta( $post_id, '_wogh_sha', true ) ||
73
-                 ! get_post_meta( $post_id, '_wogh_github_path', true ) ) {
72
+            if ($force || ! get_post_meta($post_id, '_wogh_sha', true) ||
73
+                 ! get_post_meta($post_id, '_wogh_github_path', true)) {
74 74
 
75
-                $results[] = new Writing_On_GitHub_Post( $post_id, $this->app->api() );
75
+                $results[] = new Writing_On_GitHub_Post($post_id, $this->app->api());
76 76
             }
77 77
         }
78 78
 
@@ -86,10 +86,10 @@  discard block
 block discarded – undo
86 86
      *
87 87
      * @return WP_Error|Writing_On_GitHub_Post
88 88
      */
89
-    public function fetch_by_id( $post_id ) {
90
-        $post = new Writing_On_GitHub_Post( $post_id, $this->app->api() );
89
+    public function fetch_by_id($post_id) {
90
+        $post = new Writing_On_GitHub_Post($post_id, $this->app->api());
91 91
 
92
-        if ( ! $this->is_post_supported( $post ) ) {
92
+        if ( ! $this->is_post_supported($post)) {
93 93
             return new WP_Error(
94 94
                 'unsupported_post',
95 95
                 sprintf(
@@ -112,36 +112,35 @@  discard block
 block discarded – undo
112 112
      * @param  Writing_On_GitHub_Post $post [description]
113 113
      * @return WP_Error|true
114 114
      */
115
-    public function save_post( Writing_On_GitHub_Post $post ) {
116
-        $args = apply_filters( 'wogh_pre_import_args', $this->post_args( $post ), $post );
115
+    public function save_post(Writing_On_GitHub_Post $post) {
116
+        $args = apply_filters('wogh_pre_import_args', $this->post_args($post), $post);
117 117
 
118
-        remove_filter( 'content_save_pre', 'wp_filter_post_kses' );
118
+        remove_filter('content_save_pre', 'wp_filter_post_kses');
119 119
         $post_id = $post->is_new() ?
120
-            wp_insert_post( $args, true ) :
121
-            wp_update_post( $args, true );
122
-        add_filter( 'content_save_pre', 'wp_filter_post_kses' );
120
+            wp_insert_post($args, true) : wp_update_post($args, true);
121
+        add_filter('content_save_pre', 'wp_filter_post_kses');
123 122
 
124
-        if ( is_wp_error( $post_id ) ) {
123
+        if (is_wp_error($post_id)) {
125 124
             /* @var WP_Error $post_id */
126 125
             return $post_id;
127 126
         }
128 127
 
129
-        if ( $post->is_new() ) {
128
+        if ($post->is_new()) {
130 129
             $author = false;
131 130
             $meta = $post->get_meta();
132
-            if ( ! empty( $meta ) && ! empty( $meta['author'] ) ) {
131
+            if ( ! empty($meta) && ! empty($meta['author'])) {
133 132
                 $author = $meta['author'];
134 133
             }
135
-            $user    = $this->fetch_commit_user( $author );
136
-            $user_id = is_wp_error( $user ) ? 0 : $user->ID;
137
-            $this->set_post_author( $post_id, $user_id );
134
+            $user    = $this->fetch_commit_user($author);
135
+            $user_id = is_wp_error($user) ? 0 : $user->ID;
136
+            $this->set_post_author($post_id, $user_id);
138 137
         }
139 138
 
140
-        $post->set_post( get_post( $post_id ) );
139
+        $post->set_post(get_post($post_id));
141 140
 
142
-        $meta = apply_filters( 'wogh_pre_import_meta', $post->get_meta(), $post );
141
+        $meta = apply_filters('wogh_pre_import_meta', $post->get_meta(), $post);
143 142
 
144
-        update_post_meta( $post_id, '_wogh_sha', $meta['_wogh_sha'] );
143
+        update_post_meta($post_id, '_wogh_sha', $meta['_wogh_sha']);
145 144
 
146 145
         // unset( $meta['tags'] );
147 146
         // unset( $meta['categories'] );
@@ -157,25 +156,25 @@  discard block
 block discarded – undo
157 156
         return true;
158 157
     }
159 158
 
160
-    protected function post_args( $post ) {
159
+    protected function post_args($post) {
161 160
         $args = $post->get_args();
162 161
         $meta = $post->get_meta();
163 162
 
164 163
         // prevent backslash loss
165
-        $args['post_content'] = addslashes( $args['post_content'] );
164
+        $args['post_content'] = addslashes($args['post_content']);
166 165
 
167 166
         // update tags
168
-        if ( ! empty( $meta['tags'] ) ) {
167
+        if ( ! empty($meta['tags'])) {
169 168
             $args['tags_input'] = $meta['tags'];
170 169
         }
171 170
 
172 171
         // update categories
173
-        if ( ! empty( $meta['categories'] ) ) {
172
+        if ( ! empty($meta['categories'])) {
174 173
             $categories = $meta['categories'];
175
-            if ( ! is_array( $categories ) ) {
176
-                $categories = array( $categories );
174
+            if ( ! is_array($categories)) {
175
+                $categories = array($categories);
177 176
             }
178
-            $terms = get_terms( array(
177
+            $terms = get_terms(array(
179 178
                 'taxonomy' => 'category',
180 179
                 'fields' => 'id=>name',
181 180
                 'hide_empty' => 0,
@@ -183,22 +182,22 @@  discard block
 block discarded – undo
183 182
                 )
184 183
             );
185 184
             $map = array();
186
-            foreach ( $categories as $name ) {
185
+            foreach ($categories as $name) {
187 186
                 $map[$name] = 1;
188 187
             }
189 188
 
190 189
             $ids = array();
191
-            if ( ! empty( $terms ) ) {
192
-                foreach ( $terms as $id => $name ) {
190
+            if ( ! empty($terms)) {
191
+                foreach ($terms as $id => $name) {
193 192
                     $ids[] = $id;
194
-                    unset( $map[$name] );
193
+                    unset($map[$name]);
195 194
                 }
196 195
             }
197 196
 
198 197
             // create new terms
199
-            if ( ! empty( $map ) ) {
200
-                foreach ( $map as $name => $value ) {
201
-                    $term = wp_insert_term( $name, 'category', array( 'parent' => 0 ) );
198
+            if ( ! empty($map)) {
199
+                foreach ($map as $name => $value) {
200
+                    $term = wp_insert_term($name, 'category', array('parent' => 0));
202 201
                     // array('term_id' => $term_id, 'term_taxonomy_id' => $tt_id);
203 202
                     $ids[] = $term['term_id'];
204 203
                 }
@@ -210,19 +209,19 @@  discard block
 block discarded – undo
210 209
         return $args;
211 210
     }
212 211
 
213
-    private function get_post_id_by_filename( $filename, $pattern  ) {
214
-        preg_match( $pattern , $filename, $matches );
212
+    private function get_post_id_by_filename($filename, $pattern) {
213
+        preg_match($pattern, $filename, $matches);
215 214
         $title = $matches[4];
216 215
 
217
-        $query = new WP_Query( array(
216
+        $query = new WP_Query(array(
218 217
             'name'     => $title,
219 218
             'posts_per_page' => 1,
220 219
             'post_type' => $this->get_whitelisted_post_types(),
221 220
             'fields'         => 'ids',
222
-        ) );
221
+        ));
223 222
 
224 223
         $post_id = $query->get_posts();
225
-        $post_id = array_pop( $post_id );
224
+        $post_id = array_pop($post_id);
226 225
         return $post_id;
227 226
     }
228 227
 
@@ -233,55 +232,55 @@  discard block
 block discarded – undo
233 232
      *
234 233
      * @return string|WP_Error
235 234
      */
236
-    public function delete_post_by_path( $path ) {
237
-        $query = new WP_Query( array(
235
+    public function delete_post_by_path($path) {
236
+        $query = new WP_Query(array(
238 237
             'meta_key'       => '_wogh_github_path',
239 238
             'meta_value'     => $path,
240 239
             'meta_compare'   => '=',
241 240
             'posts_per_page' => 1,
242 241
             'fields'         => 'ids',
243
-        ) );
242
+        ));
244 243
 
245 244
         $post_id = $query->get_posts();
246
-        $post_id = array_pop( $post_id );
245
+        $post_id = array_pop($post_id);
247 246
 
248
-        if ( ! $post_id ) {
249
-            $parts     = explode( '/', $path );
250
-            $filename  = array_pop( $parts );
251
-            $directory = $parts ? array_shift( $parts ) : '';
247
+        if ( ! $post_id) {
248
+            $parts     = explode('/', $path);
249
+            $filename  = array_pop($parts);
250
+            $directory = $parts ? array_shift($parts) : '';
252 251
 
253
-            if ( false !== strpos( $directory, 'post' ) ) {
254
-                $post_id = get_post_id_by_filename( $filename, '/([0-9]{4})-([0-9]{2})-([0-9]{2})-(.*)\.md/' );
252
+            if (false !== strpos($directory, 'post')) {
253
+                $post_id = get_post_id_by_filename($filename, '/([0-9]{4})-([0-9]{2})-([0-9]{2})-(.*)\.md/');
255 254
             }
256 255
 
257
-            if ( ! $post_id ) {
258
-                $post_id = get_post_id_by_filename( $filename, '/(.*)\.md/' );
256
+            if ( ! $post_id) {
257
+                $post_id = get_post_id_by_filename($filename, '/(.*)\.md/');
259 258
             }
260 259
         }
261 260
 
262
-        if ( ! $post_id ) {
261
+        if ( ! $post_id) {
263 262
             return new WP_Error(
264 263
                 'path_not_found',
265 264
                 sprintf(
266
-                    __( 'Post not found for path %s.', 'writing-on-github' ),
265
+                    __('Post not found for path %s.', 'writing-on-github'),
267 266
                     $path
268 267
                 )
269 268
             );
270 269
         }
271 270
 
272
-        $result = wp_delete_post( $post_id );
271
+        $result = wp_delete_post($post_id);
273 272
 
274 273
         // If deleting fails...
275
-        if ( false === $result ) {
276
-            $post = get_post( $post_id );
274
+        if (false === $result) {
275
+            $post = get_post($post_id);
277 276
 
278 277
             // ...and the post both exists and isn't in the trash...
279
-            if ( $post && 'trash' !== $post->post_status ) {
278
+            if ($post && 'trash' !== $post->post_status) {
280 279
                 // ... then something went wrong.
281 280
                 return new WP_Error(
282 281
                     'db_error',
283 282
                     sprintf(
284
-                        __( 'Failed to delete post ID %d.', 'writing-on-github' ),
283
+                        __('Failed to delete post ID %d.', 'writing-on-github'),
285 284
                         $post_id
286 285
                     )
287 286
                 );
@@ -289,25 +288,25 @@  discard block
 block discarded – undo
289 288
         }
290 289
 
291 290
         return sprintf(
292
-            __( 'Successfully deleted post ID %d.', 'writing-on-github' ),
291
+            __('Successfully deleted post ID %d.', 'writing-on-github'),
293 292
             $post_id
294 293
         );
295 294
     }
296 295
 
297
-    public function delete_post( $post_id ) {
298
-        $result = wp_delete_post( $post_id );
296
+    public function delete_post($post_id) {
297
+        $result = wp_delete_post($post_id);
299 298
 
300 299
         // If deleting fails...
301
-        if ( false === $result ) {
302
-            $post = get_post( $post_id );
300
+        if (false === $result) {
301
+            $post = get_post($post_id);
303 302
 
304 303
             // ...and the post both exists and isn't in the trash...
305
-            if ( $post && 'trash' !== $post->post_status ) {
304
+            if ($post && 'trash' !== $post->post_status) {
306 305
                 // ... then something went wrong.
307 306
                 return new WP_Error(
308 307
                     'db_error',
309 308
                     sprintf(
310
-                        __( 'Failed to delete post ID %d.', 'writing-on-github' ),
309
+                        __('Failed to delete post ID %d.', 'writing-on-github'),
311 310
                         $post_id
312 311
                     )
313 312
                 );
@@ -315,7 +314,7 @@  discard block
 block discarded – undo
315 314
         }
316 315
 
317 316
         return sprintf(
318
-            __( 'Successfully deleted post ID %d.', 'writing-on-github' ),
317
+            __('Successfully deleted post ID %d.', 'writing-on-github'),
319 318
             $post_id
320 319
         );
321 320
     }
@@ -326,7 +325,7 @@  discard block
 block discarded – undo
326 325
      * @return array
327 326
      */
328 327
     protected function get_whitelisted_post_types() {
329
-        return apply_filters( 'wogh_whitelisted_post_types', $this->whitelisted_post_types );
328
+        return apply_filters('wogh_whitelisted_post_types', $this->whitelisted_post_types);
330 329
     }
331 330
 
332 331
     /**
@@ -335,7 +334,7 @@  discard block
 block discarded – undo
335 334
      * @return array
336 335
      */
337 336
     protected function get_whitelisted_post_statuses() {
338
-        return apply_filters( 'wogh_whitelisted_post_statuses', $this->whitelisted_post_statuses );
337
+        return apply_filters('wogh_whitelisted_post_statuses', $this->whitelisted_post_statuses);
339 338
     }
340 339
 
341 340
     /**
@@ -345,12 +344,12 @@  discard block
 block discarded – undo
345 344
      *
346 345
      * @return string Whitelist formatted for query
347 346
      */
348
-    protected function format_for_query( $whitelist ) {
349
-        foreach ( $whitelist as $key => $value ) {
350
-            $whitelist[ $key ] = "'$value'";
347
+    protected function format_for_query($whitelist) {
348
+        foreach ($whitelist as $key => $value) {
349
+            $whitelist[$key] = "'$value'";
351 350
         }
352 351
 
353
-        return implode( ', ', $whitelist );
352
+        return implode(', ', $whitelist);
354 353
     }
355 354
 
356 355
     /**
@@ -361,25 +360,25 @@  discard block
 block discarded – undo
361 360
      *
362 361
      * @return boolean                          True if supported, false if not.
363 362
      */
364
-    protected function is_post_supported( Writing_On_GitHub_Post $post ) {
365
-        if ( wp_is_post_revision( $post->id ) ) {
363
+    protected function is_post_supported(Writing_On_GitHub_Post $post) {
364
+        if (wp_is_post_revision($post->id)) {
366 365
             return false;
367 366
         }
368 367
 
369 368
         // We need to allow trashed posts to be queried, but they are not whitelisted for export.
370
-        if ( ! in_array( $post->status(), $this->get_whitelisted_post_statuses() ) && 'trash' !== $post->status() ) {
369
+        if ( ! in_array($post->status(), $this->get_whitelisted_post_statuses()) && 'trash' !== $post->status()) {
371 370
             return false;
372 371
         }
373 372
 
374
-        if ( ! in_array( $post->type(), $this->get_whitelisted_post_types() ) ) {
373
+        if ( ! in_array($post->type(), $this->get_whitelisted_post_types())) {
375 374
             return false;
376 375
         }
377 376
 
378
-        if ( $post->has_password() ) {
377
+        if ($post->has_password()) {
379 378
             return false;
380 379
         }
381 380
 
382
-        return apply_filters( 'wogh_is_post_supported', true, $post );
381
+        return apply_filters('wogh_is_post_supported', true, $post);
383 382
     }
384 383
 
385 384
     /**
@@ -392,35 +391,35 @@  discard block
 block discarded – undo
392 391
      *
393 392
      * @return WP_Error|WP_User
394 393
      */
395
-    protected function fetch_commit_user( $display_name ) {
394
+    protected function fetch_commit_user($display_name) {
396 395
         // If we can't find a user and a default hasn't been set,
397 396
         // we're just going to set the revision author to 0.
398 397
         $user = false;
399 398
 
400
-        if ( ! empty( $display_name ) ) {
401
-            $search_string = esc_attr( $display_name );
402
-            $query = new WP_User_Query( array(
399
+        if ( ! empty($display_name)) {
400
+            $search_string = esc_attr($display_name);
401
+            $query = new WP_User_Query(array(
403 402
                 'search'         => "{$search_string}",
404 403
                 'search_columns' => array(
405 404
                     'display_name',
406 405
                     'user_nicename',
407 406
                     'user_login',
408 407
                 )
409
-            ) );
408
+            ));
410 409
             $users = $query->get_results();
411 410
             $user = empty($users) ? false : $users[0];
412 411
         }
413 412
 
414
-        if ( ! $user ) {
413
+        if ( ! $user) {
415 414
             // Use the default user.
416
-            $user = get_user_by( 'id', (int) get_option( 'wogh_default_user' ) );
415
+            $user = get_user_by('id', (int) get_option('wogh_default_user'));
417 416
         }
418 417
 
419
-        if ( ! $user ) {
418
+        if ( ! $user) {
420 419
             return new WP_Error(
421 420
                 'user_not_found',
422 421
                 sprintf(
423
-                    __( 'Commit user not found for email %s', 'writing-on-github' ),
422
+                    __('Commit user not found for email %s', 'writing-on-github'),
424 423
                     $email
425 424
                 )
426 425
             );
@@ -472,7 +471,7 @@  discard block
 block discarded – undo
472 471
      *
473 472
      * @return string|WP_Error
474 473
      */
475
-    protected function set_post_author( $post_id, $user_id ) {
474
+    protected function set_post_author($post_id, $user_id) {
476 475
         global $wpdb;
477 476
 
478 477
         $result = $wpdb->update(
@@ -483,25 +482,25 @@  discard block
 block discarded – undo
483 482
             array(
484 483
                 'ID' => (int) $post_id,
485 484
             ),
486
-            array( '%d' ),
487
-            array( '%d' )
485
+            array('%d'),
486
+            array('%d')
488 487
         );
489 488
 
490
-        if ( false === $result ) {
491
-            return new WP_Error( 'db_error', $wpdb->last_error );
489
+        if (false === $result) {
490
+            return new WP_Error('db_error', $wpdb->last_error);
492 491
         }
493 492
 
494
-        if ( 0 === $result ) {
493
+        if (0 === $result) {
495 494
             return sprintf(
496
-                __( 'No change for post ID %d.', 'writing-on-github' ),
495
+                __('No change for post ID %d.', 'writing-on-github'),
497 496
                 $post_id
498 497
             );
499 498
         }
500 499
 
501
-        clean_post_cache( $post_id );
500
+        clean_post_cache($post_id);
502 501
 
503 502
         return sprintf(
504
-            __( 'Successfully updated post ID %d.', 'writing-on-github' ),
503
+            __('Successfully updated post ID %d.', 'writing-on-github'),
505 504
             $post_id
506 505
         );
507 506
     }
Please login to merge, or discard this patch.
lib/client/fetch.php 2 patches
Indentation   +114 added lines, -114 removed lines patch added patch discarded remove patch
@@ -9,118 +9,118 @@
 block discarded – undo
9 9
  */
10 10
 class Writing_On_GitHub_Fetch_Client extends Writing_On_GitHub_Base_Client {
11 11
 
12
-    /**
13
-     * Compare a commit by sha with master from the GitHub API
14
-     *
15
-     * @param string $sha Sha for commit to retrieve.
16
-     *
17
-     * @return Writing_On_GitHub_File_Info[]|WP_Error
18
-     */
19
-    public function compare( $sha ) {
20
-        // https://api.github.com/repos/litefeel/testwpsync/compare/861f87e8851b8debb78db548269d29f8da4d94ac...master
21
-        $endpoint = $this->compare_endpoint();
22
-        $branch = $this->branch();
23
-        $data = $this->call( 'GET', "$endpoint/$sha...$branch" );
24
-
25
-        if ( is_wp_error( $data ) ) {
26
-            return $data;
27
-        }
28
-
29
-        $files = array();
30
-        foreach ($data->files as $file) {
31
-            $file->path = $file->filename;
32
-            $files[] = new Writing_On_GitHub_File_Info($file);
33
-        }
34
-
35
-        return $files;
36
-    }
37
-
38
-    /**
39
-     * Calls the content API to get the post's contents and metadata
40
-     *
41
-     * Returns Object the response from the API
42
-     *
43
-     * @param Writing_On_GitHub_Post $post Post to retrieve remote contents for.
44
-     *
45
-     * @return mixed
46
-     */
47
-    public function remote_contents( $post ) {
48
-        return $this->call( 'GET', $this->content_endpoint( $post->github_path() ) );
49
-    }
50
-
51
-
52
-
53
-    public function exists( $path ) {
54
-        $result = $this->call( 'GET', $this->content_endpoint( $path ) );
55
-        if ( is_wp_error( $result ) ) {
56
-            return false;
57
-        }
58
-        return true;
59
-    }
60
-
61
-    /**
62
-     * Retrieves a tree by sha recursively from the GitHub API
63
-     *
64
-     * @param string $sha Commit sha to retrieve tree from.
65
-     *
66
-     * @return Writing_On_GitHub_File_Info[]|WP_Error
67
-     */
68
-    public function tree_recursive( $sha = '_default' ) {
69
-
70
-        if ( '_default' === $sha ) {
71
-            $sha = $this->branch();
72
-        }
73
-
74
-        $data = $this->call( 'GET', $this->tree_endpoint() . '/' . $sha . '?recursive=1' );
75
-
76
-        if ( is_wp_error( $data ) ) {
77
-            return $data;
78
-        }
79
-
80
-        $files = array();
81
-
82
-        foreach ( $data->tree as $index => $thing ) {
83
-            // We need to remove the trees because
84
-            // the recursive tree includes both
85
-            // the subtrees as well the subtrees' blobs.
86
-            if ( 'blob' === $thing->type ) {
87
-                $thing->status = '';
88
-                $files[] = new Writing_On_GitHub_File_Info( $thing );
89
-            }
90
-        }
91
-
92
-        return $files;
93
-    }
94
-
95
-    /**
96
-     * Retrieves the blob data for a given sha
97
-     *
98
-     * @param Writing_On_GitHub_File_Info $fileinfo
99
-     *
100
-     * @return Writing_On_GitHub_Blob|WP_Error
101
-     */
102
-    public function blob( Writing_On_GitHub_File_Info $fileinfo ) {
103
-        $data = $this->call( 'GET', $this->blob_endpoint() . '/' . $fileinfo->sha );
104
-
105
-        if ( is_wp_error( $data ) ) {
106
-            return $data;
107
-        }
108
-
109
-        $data->path = $fileinfo->path;
110
-        return new Writing_On_GitHub_Blob( $data );
111
-    }
112
-
113
-    /**
114
-     * Get blob by path
115
-     * @param  string $path
116
-     * @return Writing_On_GitHub_Blob|WP_Error
117
-     */
118
-    public function blob_by_path( $path ) {
119
-        $result = $this->call( 'GET', $this->content_endpoint( $path ) );
120
-        if ( is_wp_error( $result ) ) {
121
-            return $result;
122
-        }
123
-
124
-        return new Writing_On_GitHub_Blob( $result );
125
-    }
12
+	/**
13
+	 * Compare a commit by sha with master from the GitHub API
14
+	 *
15
+	 * @param string $sha Sha for commit to retrieve.
16
+	 *
17
+	 * @return Writing_On_GitHub_File_Info[]|WP_Error
18
+	 */
19
+	public function compare( $sha ) {
20
+		// https://api.github.com/repos/litefeel/testwpsync/compare/861f87e8851b8debb78db548269d29f8da4d94ac...master
21
+		$endpoint = $this->compare_endpoint();
22
+		$branch = $this->branch();
23
+		$data = $this->call( 'GET', "$endpoint/$sha...$branch" );
24
+
25
+		if ( is_wp_error( $data ) ) {
26
+			return $data;
27
+		}
28
+
29
+		$files = array();
30
+		foreach ($data->files as $file) {
31
+			$file->path = $file->filename;
32
+			$files[] = new Writing_On_GitHub_File_Info($file);
33
+		}
34
+
35
+		return $files;
36
+	}
37
+
38
+	/**
39
+	 * Calls the content API to get the post's contents and metadata
40
+	 *
41
+	 * Returns Object the response from the API
42
+	 *
43
+	 * @param Writing_On_GitHub_Post $post Post to retrieve remote contents for.
44
+	 *
45
+	 * @return mixed
46
+	 */
47
+	public function remote_contents( $post ) {
48
+		return $this->call( 'GET', $this->content_endpoint( $post->github_path() ) );
49
+	}
50
+
51
+
52
+
53
+	public function exists( $path ) {
54
+		$result = $this->call( 'GET', $this->content_endpoint( $path ) );
55
+		if ( is_wp_error( $result ) ) {
56
+			return false;
57
+		}
58
+		return true;
59
+	}
60
+
61
+	/**
62
+	 * Retrieves a tree by sha recursively from the GitHub API
63
+	 *
64
+	 * @param string $sha Commit sha to retrieve tree from.
65
+	 *
66
+	 * @return Writing_On_GitHub_File_Info[]|WP_Error
67
+	 */
68
+	public function tree_recursive( $sha = '_default' ) {
69
+
70
+		if ( '_default' === $sha ) {
71
+			$sha = $this->branch();
72
+		}
73
+
74
+		$data = $this->call( 'GET', $this->tree_endpoint() . '/' . $sha . '?recursive=1' );
75
+
76
+		if ( is_wp_error( $data ) ) {
77
+			return $data;
78
+		}
79
+
80
+		$files = array();
81
+
82
+		foreach ( $data->tree as $index => $thing ) {
83
+			// We need to remove the trees because
84
+			// the recursive tree includes both
85
+			// the subtrees as well the subtrees' blobs.
86
+			if ( 'blob' === $thing->type ) {
87
+				$thing->status = '';
88
+				$files[] = new Writing_On_GitHub_File_Info( $thing );
89
+			}
90
+		}
91
+
92
+		return $files;
93
+	}
94
+
95
+	/**
96
+	 * Retrieves the blob data for a given sha
97
+	 *
98
+	 * @param Writing_On_GitHub_File_Info $fileinfo
99
+	 *
100
+	 * @return Writing_On_GitHub_Blob|WP_Error
101
+	 */
102
+	public function blob( Writing_On_GitHub_File_Info $fileinfo ) {
103
+		$data = $this->call( 'GET', $this->blob_endpoint() . '/' . $fileinfo->sha );
104
+
105
+		if ( is_wp_error( $data ) ) {
106
+			return $data;
107
+		}
108
+
109
+		$data->path = $fileinfo->path;
110
+		return new Writing_On_GitHub_Blob( $data );
111
+	}
112
+
113
+	/**
114
+	 * Get blob by path
115
+	 * @param  string $path
116
+	 * @return Writing_On_GitHub_Blob|WP_Error
117
+	 */
118
+	public function blob_by_path( $path ) {
119
+		$result = $this->call( 'GET', $this->content_endpoint( $path ) );
120
+		if ( is_wp_error( $result ) ) {
121
+			return $result;
122
+		}
123
+
124
+		return new Writing_On_GitHub_Blob( $result );
125
+	}
126 126
 }
Please login to merge, or discard this patch.
Spacing   +23 added lines, -23 removed lines patch added patch discarded remove patch
@@ -16,13 +16,13 @@  discard block
 block discarded – undo
16 16
      *
17 17
      * @return Writing_On_GitHub_File_Info[]|WP_Error
18 18
      */
19
-    public function compare( $sha ) {
19
+    public function compare($sha) {
20 20
         // https://api.github.com/repos/litefeel/testwpsync/compare/861f87e8851b8debb78db548269d29f8da4d94ac...master
21 21
         $endpoint = $this->compare_endpoint();
22 22
         $branch = $this->branch();
23
-        $data = $this->call( 'GET', "$endpoint/$sha...$branch" );
23
+        $data = $this->call('GET', "$endpoint/$sha...$branch");
24 24
 
25
-        if ( is_wp_error( $data ) ) {
25
+        if (is_wp_error($data)) {
26 26
             return $data;
27 27
         }
28 28
 
@@ -44,15 +44,15 @@  discard block
 block discarded – undo
44 44
      *
45 45
      * @return mixed
46 46
      */
47
-    public function remote_contents( $post ) {
48
-        return $this->call( 'GET', $this->content_endpoint( $post->github_path() ) );
47
+    public function remote_contents($post) {
48
+        return $this->call('GET', $this->content_endpoint($post->github_path()));
49 49
     }
50 50
 
51 51
 
52 52
 
53
-    public function exists( $path ) {
54
-        $result = $this->call( 'GET', $this->content_endpoint( $path ) );
55
-        if ( is_wp_error( $result ) ) {
53
+    public function exists($path) {
54
+        $result = $this->call('GET', $this->content_endpoint($path));
55
+        if (is_wp_error($result)) {
56 56
             return false;
57 57
         }
58 58
         return true;
@@ -65,27 +65,27 @@  discard block
 block discarded – undo
65 65
      *
66 66
      * @return Writing_On_GitHub_File_Info[]|WP_Error
67 67
      */
68
-    public function tree_recursive( $sha = '_default' ) {
68
+    public function tree_recursive($sha = '_default') {
69 69
 
70
-        if ( '_default' === $sha ) {
70
+        if ('_default' === $sha) {
71 71
             $sha = $this->branch();
72 72
         }
73 73
 
74
-        $data = $this->call( 'GET', $this->tree_endpoint() . '/' . $sha . '?recursive=1' );
74
+        $data = $this->call('GET', $this->tree_endpoint() . '/' . $sha . '?recursive=1');
75 75
 
76
-        if ( is_wp_error( $data ) ) {
76
+        if (is_wp_error($data)) {
77 77
             return $data;
78 78
         }
79 79
 
80 80
         $files = array();
81 81
 
82
-        foreach ( $data->tree as $index => $thing ) {
82
+        foreach ($data->tree as $index => $thing) {
83 83
             // We need to remove the trees because
84 84
             // the recursive tree includes both
85 85
             // the subtrees as well the subtrees' blobs.
86
-            if ( 'blob' === $thing->type ) {
86
+            if ('blob' === $thing->type) {
87 87
                 $thing->status = '';
88
-                $files[] = new Writing_On_GitHub_File_Info( $thing );
88
+                $files[] = new Writing_On_GitHub_File_Info($thing);
89 89
             }
90 90
         }
91 91
 
@@ -99,15 +99,15 @@  discard block
 block discarded – undo
99 99
      *
100 100
      * @return Writing_On_GitHub_Blob|WP_Error
101 101
      */
102
-    public function blob( Writing_On_GitHub_File_Info $fileinfo ) {
103
-        $data = $this->call( 'GET', $this->blob_endpoint() . '/' . $fileinfo->sha );
102
+    public function blob(Writing_On_GitHub_File_Info $fileinfo) {
103
+        $data = $this->call('GET', $this->blob_endpoint() . '/' . $fileinfo->sha);
104 104
 
105
-        if ( is_wp_error( $data ) ) {
105
+        if (is_wp_error($data)) {
106 106
             return $data;
107 107
         }
108 108
 
109 109
         $data->path = $fileinfo->path;
110
-        return new Writing_On_GitHub_Blob( $data );
110
+        return new Writing_On_GitHub_Blob($data);
111 111
     }
112 112
 
113 113
     /**
@@ -115,12 +115,12 @@  discard block
 block discarded – undo
115 115
      * @param  string $path
116 116
      * @return Writing_On_GitHub_Blob|WP_Error
117 117
      */
118
-    public function blob_by_path( $path ) {
119
-        $result = $this->call( 'GET', $this->content_endpoint( $path ) );
120
-        if ( is_wp_error( $result ) ) {
118
+    public function blob_by_path($path) {
119
+        $result = $this->call('GET', $this->content_endpoint($path));
120
+        if (is_wp_error($result)) {
121 121
             return $result;
122 122
         }
123 123
 
124
-        return new Writing_On_GitHub_Blob( $result );
124
+        return new Writing_On_GitHub_Blob($result);
125 125
     }
126 126
 }
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-m-d-', $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-m-d-', $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-m-d-', $this->id ) . $this->get_name() . '.md';
233
+        if ('post' === $this->type()) {
234
+            $filename = get_the_time('Y-m-d-', $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/export.php 2 patches
Indentation   +271 added lines, -271 removed lines patch added patch discarded remove patch
@@ -10,275 +10,275 @@
 block discarded – undo
10 10
  */
11 11
 class Writing_On_GitHub_Export {
12 12
 
13
-    /**
14
-     * Application container.
15
-     *
16
-     * @var Writing_On_GitHub
17
-     */
18
-    protected $app;
19
-
20
-    /**
21
-     * Initializes a new export 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
-     * Updates all of the current posts in the database on master.
31
-     *
32
-     * @param  bool    $force
33
-     *
34
-     * @return string|WP_Error
35
-     */
36
-    public function full( $force = false ) {
37
-        $posts = $this->app->database()->fetch_all_supported( $force );
38
-
39
-        if ( is_wp_error( $posts ) ) {
40
-            /* @var WP_Error $posts */
41
-            return $posts;
42
-        }
43
-
44
-        $error = '';
45
-
46
-        foreach ( $posts as $post ) {
47
-            $result = $this->update( $post->id() );
48
-            if ( is_wp_error( $result ) ) {
49
-                /* @var WP_Error $result */
50
-                $error = wogh_append_error( $error, $result );
51
-            }
52
-        }
53
-
54
-        if ( is_wp_error( $error ) ) {
55
-            /* @var WP_Error $error */
56
-            return $error;
57
-        }
58
-
59
-        return __( 'Export to GitHub completed successfully.', 'writing-on-github' );
60
-    }
61
-
62
-
63
-    /**
64
-     * Check if it exists in github
65
-     * @param  int  $post_id
66
-     * @return boolean
67
-     */
68
-    protected function github_path( $post_id ) {
69
-        $github_path = get_post_meta( $post_id, '_wogh_github_path', true );
70
-
71
-        if ( $github_path && $this->app->api()->fetch()->exists( $github_path ) ) {
72
-            return $github_path;
73
-        }
74
-
75
-        return false;
76
-    }
77
-
78
-    /**
79
-     * Updates the provided post ID in master.
80
-     *
81
-     * @param int $post_id Post ID to update.
82
-     *
83
-     * @return string|WP_Error
84
-     */
85
-    public function update( $post_id ) {
86
-        $post = $this->app->database()->fetch_by_id( $post_id );
87
-
88
-        if ( is_wp_error( $post ) ) {
89
-            /* @var WP_Error $post */
90
-            return $post;
91
-        }
92
-
93
-        if ( 'trash' === $post->status() ) {
94
-            return $this->delete( $post_id );
95
-        }
96
-
97
-        if ( $old_github_path = $this->github_path( $post->id() ) ) {
98
-            error_log("old_github_path: $old_github_path");
99
-            $post->set_old_github_path($old_github_path);
100
-        }
101
-
102
-        $result = $this->export_post( $post );
103
-
104
-        if ( is_wp_error( $result ) ) {
105
-            /* @var WP_Error $result */
106
-            return $result;
107
-        }
108
-
109
-        return __( 'Export to GitHub completed successfully.', 'writing-on-github' );
110
-    }
111
-
112
-    /**
113
-     * Post to blob
114
-     * @param  Writing_On_GitHub_Post $post
115
-     * @return WP_Error|Writing_On_GitHub_Blob
116
-     */
117
-    protected function post_to_blob( Writing_On_GitHub_Post $post ) {
118
-        if ( ! $post->get_blob()
119
-            && $post->old_github_path()
120
-            && wogh_is_dont_export_content() ) {
121
-
122
-
123
-            $blob = $this->app->api()->fetch()->blob_by_path( $post->old_github_path() );
124
-
125
-            if ( is_wp_error( $blob ) ) {
126
-                /** @var WP_Error $blob */
127
-                return $blob;
128
-            }
129
-
130
-            $post->set_blob( $blob );
131
-        }
132
-
133
-        return $post->to_blob();
134
-    }
135
-
136
-    /**
137
-     * Export post to github
138
-     * @param  Writing_On_GitHub_Post $post
139
-     * @return WP_Error|true
140
-     */
141
-    public function export_post( Writing_On_GitHub_Post $post ) {
142
-        // check blob
143
-        $blob = $this->post_to_blob( $post );
144
-        if ( is_wp_error( $blob ) ) {
145
-            /** @var WP_Error $blob */
146
-            return $blob;
147
-        }
148
-
149
-        $result = false;
150
-
151
-        $persist = $this->app->api()->persist();
152
-        $github_path = $post->github_path();
153
-        $old_github_path = $post->old_github_path();
154
-
155
-        if ( $old_github_path && $old_github_path != $github_path ) {
156
-            // rename
157
-            $message = apply_filters(
158
-                'wogh_commit_msg_move_post',
159
-                sprintf(
160
-                    'Move %s to %s via WordPress at %s (%s)',
161
-                    $old_github_path, $github_path,
162
-                    site_url(),
163
-                    get_bloginfo( 'name' )
164
-                )
165
-            ) . $this->get_commit_msg_tag();
166
-
167
-            $result = $persist->delete_file( $post->old_github_path(), $blob->sha(), $message );
168
-            if ( is_wp_error( $result ) ) {
169
-                return $result;
170
-            }
171
-
172
-            $result = $persist->create_file( $blob, $message );
173
-            if ( is_wp_error( $result ) ) {
174
-                return $result;
175
-            }
176
-        } elseif ( ! $old_github_path ) {
177
-            // create new
178
-            $message = apply_filters(
179
-                'wogh_commit_msg_new_post',
180
-                sprintf(
181
-                    'Create new post %s from WordPress at %s (%s)',
182
-                    $github_path,
183
-                    site_url(),
184
-                    get_bloginfo( 'name' )
185
-                )
186
-            ) . $this->get_commit_msg_tag();
187
-            $result = $persist->create_file( $blob, $message );
188
-            if ( is_wp_error( $result ) ) {
189
-                return $result;
190
-            }
191
-        } elseif ( $old_github_path && $old_github_path == $github_path ) {
192
-            // update
193
-            $sha = wogh_git_sha( $blob->content() );
194
-            if ( $sha === $blob->sha() ) {
195
-                // don't export when has not changed
196
-                return true;
197
-            }
198
-            $message = apply_filters(
199
-                'wogh_commit_msg_update_post',
200
-                sprintf(
201
-                    'Update post %s from WordPress at %s (%s)',
202
-                    $github_path,
203
-                    site_url(),
204
-                    get_bloginfo( 'name' )
205
-                )
206
-            ) . $this->get_commit_msg_tag();
207
-            $result = $persist->update_file( $blob, $message );
208
-            if ( is_wp_error( $result ) ) {
209
-                return $result;
210
-            }
211
-        }
212
-
213
-        $sha = $result->content->sha;
214
-        $post->set_sha( $sha );
215
-        $post->set_old_github_path( $github_path );
216
-
217
-        return true;
218
-    }
219
-
220
-    /**
221
-     * Deletes a provided post ID from master.
222
-     *
223
-     * @param int $post_id Post ID to delete.
224
-     *
225
-     * @return string|WP_Error
226
-     */
227
-    public function delete( $post_id ) {
228
-        $post = $this->app->database()->fetch_by_id( $post_id );
229
-
230
-        if ( is_wp_error( $post ) ) {
231
-            /* @var WP_Error $post */
232
-            return $post;
233
-        }
234
-
235
-        $github_path = get_post_meta( $post_id, '_wogh_github_path', true );
236
-
237
-        $message = apply_filters(
238
-            'wogh_commit_msg_delete',
239
-            sprintf(
240
-                'Deleting %s via WordPress at %s (%s)',
241
-                $github_path,
242
-                site_url(),
243
-                get_bloginfo( 'name' )
244
-            ),
245
-            $post
246
-        ) . $this->get_commit_msg_tag();
247
-
248
-        $result = $this->app->api()->persist()->delete_file( $github_path, $post->sha(), $message );
249
-
250
-        if ( is_wp_error( $result ) ) {
251
-            /* @var WP_Error $result */
252
-            return $result;
253
-        }
254
-
255
-        return __( 'Export to GitHub completed successfully.', 'writing-on-github' );
256
-    }
257
-
258
-
259
-    /**
260
-     * Saves the export user to the database.
261
-     *
262
-     * @param int $user_id User ID to export with.
263
-     *
264
-     * @return bool
265
-     */
266
-    public function set_user( $user_id ) {
267
-        return update_option( self::EXPORT_USER_OPTION, (int) $user_id );
268
-    }
269
-
270
-    /**
271
-     * Gets the commit message tag.
272
-     *
273
-     * @return string
274
-     */
275
-    protected function get_commit_msg_tag() {
276
-        $tag = apply_filters( 'wogh_commit_msg_tag', 'wogh' );
277
-
278
-        if ( ! $tag ) {
279
-            throw new Exception( __( 'Commit message tag not set. Filter `wogh_commit_msg_tag` misconfigured.', 'writing-on-github' ) );
280
-        }
281
-
282
-        return ' - ' . $tag;
283
-    }
13
+	/**
14
+	 * Application container.
15
+	 *
16
+	 * @var Writing_On_GitHub
17
+	 */
18
+	protected $app;
19
+
20
+	/**
21
+	 * Initializes a new export 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
+	 * Updates all of the current posts in the database on master.
31
+	 *
32
+	 * @param  bool    $force
33
+	 *
34
+	 * @return string|WP_Error
35
+	 */
36
+	public function full( $force = false ) {
37
+		$posts = $this->app->database()->fetch_all_supported( $force );
38
+
39
+		if ( is_wp_error( $posts ) ) {
40
+			/* @var WP_Error $posts */
41
+			return $posts;
42
+		}
43
+
44
+		$error = '';
45
+
46
+		foreach ( $posts as $post ) {
47
+			$result = $this->update( $post->id() );
48
+			if ( is_wp_error( $result ) ) {
49
+				/* @var WP_Error $result */
50
+				$error = wogh_append_error( $error, $result );
51
+			}
52
+		}
53
+
54
+		if ( is_wp_error( $error ) ) {
55
+			/* @var WP_Error $error */
56
+			return $error;
57
+		}
58
+
59
+		return __( 'Export to GitHub completed successfully.', 'writing-on-github' );
60
+	}
61
+
62
+
63
+	/**
64
+	 * Check if it exists in github
65
+	 * @param  int  $post_id
66
+	 * @return boolean
67
+	 */
68
+	protected function github_path( $post_id ) {
69
+		$github_path = get_post_meta( $post_id, '_wogh_github_path', true );
70
+
71
+		if ( $github_path && $this->app->api()->fetch()->exists( $github_path ) ) {
72
+			return $github_path;
73
+		}
74
+
75
+		return false;
76
+	}
77
+
78
+	/**
79
+	 * Updates the provided post ID in master.
80
+	 *
81
+	 * @param int $post_id Post ID to update.
82
+	 *
83
+	 * @return string|WP_Error
84
+	 */
85
+	public function update( $post_id ) {
86
+		$post = $this->app->database()->fetch_by_id( $post_id );
87
+
88
+		if ( is_wp_error( $post ) ) {
89
+			/* @var WP_Error $post */
90
+			return $post;
91
+		}
92
+
93
+		if ( 'trash' === $post->status() ) {
94
+			return $this->delete( $post_id );
95
+		}
96
+
97
+		if ( $old_github_path = $this->github_path( $post->id() ) ) {
98
+			error_log("old_github_path: $old_github_path");
99
+			$post->set_old_github_path($old_github_path);
100
+		}
101
+
102
+		$result = $this->export_post( $post );
103
+
104
+		if ( is_wp_error( $result ) ) {
105
+			/* @var WP_Error $result */
106
+			return $result;
107
+		}
108
+
109
+		return __( 'Export to GitHub completed successfully.', 'writing-on-github' );
110
+	}
111
+
112
+	/**
113
+	 * Post to blob
114
+	 * @param  Writing_On_GitHub_Post $post
115
+	 * @return WP_Error|Writing_On_GitHub_Blob
116
+	 */
117
+	protected function post_to_blob( Writing_On_GitHub_Post $post ) {
118
+		if ( ! $post->get_blob()
119
+			&& $post->old_github_path()
120
+			&& wogh_is_dont_export_content() ) {
121
+
122
+
123
+			$blob = $this->app->api()->fetch()->blob_by_path( $post->old_github_path() );
124
+
125
+			if ( is_wp_error( $blob ) ) {
126
+				/** @var WP_Error $blob */
127
+				return $blob;
128
+			}
129
+
130
+			$post->set_blob( $blob );
131
+		}
132
+
133
+		return $post->to_blob();
134
+	}
135
+
136
+	/**
137
+	 * Export post to github
138
+	 * @param  Writing_On_GitHub_Post $post
139
+	 * @return WP_Error|true
140
+	 */
141
+	public function export_post( Writing_On_GitHub_Post $post ) {
142
+		// check blob
143
+		$blob = $this->post_to_blob( $post );
144
+		if ( is_wp_error( $blob ) ) {
145
+			/** @var WP_Error $blob */
146
+			return $blob;
147
+		}
148
+
149
+		$result = false;
150
+
151
+		$persist = $this->app->api()->persist();
152
+		$github_path = $post->github_path();
153
+		$old_github_path = $post->old_github_path();
154
+
155
+		if ( $old_github_path && $old_github_path != $github_path ) {
156
+			// rename
157
+			$message = apply_filters(
158
+				'wogh_commit_msg_move_post',
159
+				sprintf(
160
+					'Move %s to %s via WordPress at %s (%s)',
161
+					$old_github_path, $github_path,
162
+					site_url(),
163
+					get_bloginfo( 'name' )
164
+				)
165
+			) . $this->get_commit_msg_tag();
166
+
167
+			$result = $persist->delete_file( $post->old_github_path(), $blob->sha(), $message );
168
+			if ( is_wp_error( $result ) ) {
169
+				return $result;
170
+			}
171
+
172
+			$result = $persist->create_file( $blob, $message );
173
+			if ( is_wp_error( $result ) ) {
174
+				return $result;
175
+			}
176
+		} elseif ( ! $old_github_path ) {
177
+			// create new
178
+			$message = apply_filters(
179
+				'wogh_commit_msg_new_post',
180
+				sprintf(
181
+					'Create new post %s from WordPress at %s (%s)',
182
+					$github_path,
183
+					site_url(),
184
+					get_bloginfo( 'name' )
185
+				)
186
+			) . $this->get_commit_msg_tag();
187
+			$result = $persist->create_file( $blob, $message );
188
+			if ( is_wp_error( $result ) ) {
189
+				return $result;
190
+			}
191
+		} elseif ( $old_github_path && $old_github_path == $github_path ) {
192
+			// update
193
+			$sha = wogh_git_sha( $blob->content() );
194
+			if ( $sha === $blob->sha() ) {
195
+				// don't export when has not changed
196
+				return true;
197
+			}
198
+			$message = apply_filters(
199
+				'wogh_commit_msg_update_post',
200
+				sprintf(
201
+					'Update post %s from WordPress at %s (%s)',
202
+					$github_path,
203
+					site_url(),
204
+					get_bloginfo( 'name' )
205
+				)
206
+			) . $this->get_commit_msg_tag();
207
+			$result = $persist->update_file( $blob, $message );
208
+			if ( is_wp_error( $result ) ) {
209
+				return $result;
210
+			}
211
+		}
212
+
213
+		$sha = $result->content->sha;
214
+		$post->set_sha( $sha );
215
+		$post->set_old_github_path( $github_path );
216
+
217
+		return true;
218
+	}
219
+
220
+	/**
221
+	 * Deletes a provided post ID from master.
222
+	 *
223
+	 * @param int $post_id Post ID to delete.
224
+	 *
225
+	 * @return string|WP_Error
226
+	 */
227
+	public function delete( $post_id ) {
228
+		$post = $this->app->database()->fetch_by_id( $post_id );
229
+
230
+		if ( is_wp_error( $post ) ) {
231
+			/* @var WP_Error $post */
232
+			return $post;
233
+		}
234
+
235
+		$github_path = get_post_meta( $post_id, '_wogh_github_path', true );
236
+
237
+		$message = apply_filters(
238
+			'wogh_commit_msg_delete',
239
+			sprintf(
240
+				'Deleting %s via WordPress at %s (%s)',
241
+				$github_path,
242
+				site_url(),
243
+				get_bloginfo( 'name' )
244
+			),
245
+			$post
246
+		) . $this->get_commit_msg_tag();
247
+
248
+		$result = $this->app->api()->persist()->delete_file( $github_path, $post->sha(), $message );
249
+
250
+		if ( is_wp_error( $result ) ) {
251
+			/* @var WP_Error $result */
252
+			return $result;
253
+		}
254
+
255
+		return __( 'Export to GitHub completed successfully.', 'writing-on-github' );
256
+	}
257
+
258
+
259
+	/**
260
+	 * Saves the export user to the database.
261
+	 *
262
+	 * @param int $user_id User ID to export with.
263
+	 *
264
+	 * @return bool
265
+	 */
266
+	public function set_user( $user_id ) {
267
+		return update_option( self::EXPORT_USER_OPTION, (int) $user_id );
268
+	}
269
+
270
+	/**
271
+	 * Gets the commit message tag.
272
+	 *
273
+	 * @return string
274
+	 */
275
+	protected function get_commit_msg_tag() {
276
+		$tag = apply_filters( 'wogh_commit_msg_tag', 'wogh' );
277
+
278
+		if ( ! $tag ) {
279
+			throw new Exception( __( 'Commit message tag not set. Filter `wogh_commit_msg_tag` misconfigured.', 'writing-on-github' ) );
280
+		}
281
+
282
+		return ' - ' . $tag;
283
+	}
284 284
 }
Please login to merge, or discard this patch.
Spacing   +61 added lines, -61 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
 
@@ -33,30 +33,30 @@  discard block
 block discarded – undo
33 33
      *
34 34
      * @return string|WP_Error
35 35
      */
36
-    public function full( $force = false ) {
37
-        $posts = $this->app->database()->fetch_all_supported( $force );
36
+    public function full($force = false) {
37
+        $posts = $this->app->database()->fetch_all_supported($force);
38 38
 
39
-        if ( is_wp_error( $posts ) ) {
39
+        if (is_wp_error($posts)) {
40 40
             /* @var WP_Error $posts */
41 41
             return $posts;
42 42
         }
43 43
 
44 44
         $error = '';
45 45
 
46
-        foreach ( $posts as $post ) {
47
-            $result = $this->update( $post->id() );
48
-            if ( is_wp_error( $result ) ) {
46
+        foreach ($posts as $post) {
47
+            $result = $this->update($post->id());
48
+            if (is_wp_error($result)) {
49 49
                 /* @var WP_Error $result */
50
-                $error = wogh_append_error( $error, $result );
50
+                $error = wogh_append_error($error, $result);
51 51
             }
52 52
         }
53 53
 
54
-        if ( is_wp_error( $error ) ) {
54
+        if (is_wp_error($error)) {
55 55
             /* @var WP_Error $error */
56 56
             return $error;
57 57
         }
58 58
 
59
-        return __( 'Export to GitHub completed successfully.', 'writing-on-github' );
59
+        return __('Export to GitHub completed successfully.', 'writing-on-github');
60 60
     }
61 61
 
62 62
 
@@ -65,10 +65,10 @@  discard block
 block discarded – undo
65 65
      * @param  int  $post_id
66 66
      * @return boolean
67 67
      */
68
-    protected function github_path( $post_id ) {
69
-        $github_path = get_post_meta( $post_id, '_wogh_github_path', true );
68
+    protected function github_path($post_id) {
69
+        $github_path = get_post_meta($post_id, '_wogh_github_path', true);
70 70
 
71
-        if ( $github_path && $this->app->api()->fetch()->exists( $github_path ) ) {
71
+        if ($github_path && $this->app->api()->fetch()->exists($github_path)) {
72 72
             return $github_path;
73 73
         }
74 74
 
@@ -82,31 +82,31 @@  discard block
 block discarded – undo
82 82
      *
83 83
      * @return string|WP_Error
84 84
      */
85
-    public function update( $post_id ) {
86
-        $post = $this->app->database()->fetch_by_id( $post_id );
85
+    public function update($post_id) {
86
+        $post = $this->app->database()->fetch_by_id($post_id);
87 87
 
88
-        if ( is_wp_error( $post ) ) {
88
+        if (is_wp_error($post)) {
89 89
             /* @var WP_Error $post */
90 90
             return $post;
91 91
         }
92 92
 
93
-        if ( 'trash' === $post->status() ) {
94
-            return $this->delete( $post_id );
93
+        if ('trash' === $post->status()) {
94
+            return $this->delete($post_id);
95 95
         }
96 96
 
97
-        if ( $old_github_path = $this->github_path( $post->id() ) ) {
97
+        if ($old_github_path = $this->github_path($post->id())) {
98 98
             error_log("old_github_path: $old_github_path");
99 99
             $post->set_old_github_path($old_github_path);
100 100
         }
101 101
 
102
-        $result = $this->export_post( $post );
102
+        $result = $this->export_post($post);
103 103
 
104
-        if ( is_wp_error( $result ) ) {
104
+        if (is_wp_error($result)) {
105 105
             /* @var WP_Error $result */
106 106
             return $result;
107 107
         }
108 108
 
109
-        return __( 'Export to GitHub completed successfully.', 'writing-on-github' );
109
+        return __('Export to GitHub completed successfully.', 'writing-on-github');
110 110
     }
111 111
 
112 112
     /**
@@ -114,20 +114,20 @@  discard block
 block discarded – undo
114 114
      * @param  Writing_On_GitHub_Post $post
115 115
      * @return WP_Error|Writing_On_GitHub_Blob
116 116
      */
117
-    protected function post_to_blob( Writing_On_GitHub_Post $post ) {
117
+    protected function post_to_blob(Writing_On_GitHub_Post $post) {
118 118
         if ( ! $post->get_blob()
119 119
             && $post->old_github_path()
120
-            && wogh_is_dont_export_content() ) {
120
+            && wogh_is_dont_export_content()) {
121 121
 
122 122
 
123
-            $blob = $this->app->api()->fetch()->blob_by_path( $post->old_github_path() );
123
+            $blob = $this->app->api()->fetch()->blob_by_path($post->old_github_path());
124 124
 
125
-            if ( is_wp_error( $blob ) ) {
125
+            if (is_wp_error($blob)) {
126 126
                 /** @var WP_Error $blob */
127 127
                 return $blob;
128 128
             }
129 129
 
130
-            $post->set_blob( $blob );
130
+            $post->set_blob($blob);
131 131
         }
132 132
 
133 133
         return $post->to_blob();
@@ -138,10 +138,10 @@  discard block
 block discarded – undo
138 138
      * @param  Writing_On_GitHub_Post $post
139 139
      * @return WP_Error|true
140 140
      */
141
-    public function export_post( Writing_On_GitHub_Post $post ) {
141
+    public function export_post(Writing_On_GitHub_Post $post) {
142 142
         // check blob
143
-        $blob = $this->post_to_blob( $post );
144
-        if ( is_wp_error( $blob ) ) {
143
+        $blob = $this->post_to_blob($post);
144
+        if (is_wp_error($blob)) {
145 145
             /** @var WP_Error $blob */
146 146
             return $blob;
147 147
         }
@@ -152,7 +152,7 @@  discard block
 block discarded – undo
152 152
         $github_path = $post->github_path();
153 153
         $old_github_path = $post->old_github_path();
154 154
 
155
-        if ( $old_github_path && $old_github_path != $github_path ) {
155
+        if ($old_github_path && $old_github_path != $github_path) {
156 156
             // rename
157 157
             $message = apply_filters(
158 158
                 'wogh_commit_msg_move_post',
@@ -160,20 +160,20 @@  discard block
 block discarded – undo
160 160
                     'Move %s to %s via WordPress at %s (%s)',
161 161
                     $old_github_path, $github_path,
162 162
                     site_url(),
163
-                    get_bloginfo( 'name' )
163
+                    get_bloginfo('name')
164 164
                 )
165 165
             ) . $this->get_commit_msg_tag();
166 166
 
167
-            $result = $persist->delete_file( $post->old_github_path(), $blob->sha(), $message );
168
-            if ( is_wp_error( $result ) ) {
167
+            $result = $persist->delete_file($post->old_github_path(), $blob->sha(), $message);
168
+            if (is_wp_error($result)) {
169 169
                 return $result;
170 170
             }
171 171
 
172
-            $result = $persist->create_file( $blob, $message );
173
-            if ( is_wp_error( $result ) ) {
172
+            $result = $persist->create_file($blob, $message);
173
+            if (is_wp_error($result)) {
174 174
                 return $result;
175 175
             }
176
-        } elseif ( ! $old_github_path ) {
176
+        } elseif ( ! $old_github_path) {
177 177
             // create new
178 178
             $message = apply_filters(
179 179
                 'wogh_commit_msg_new_post',
@@ -181,17 +181,17 @@  discard block
 block discarded – undo
181 181
                     'Create new post %s from WordPress at %s (%s)',
182 182
                     $github_path,
183 183
                     site_url(),
184
-                    get_bloginfo( 'name' )
184
+                    get_bloginfo('name')
185 185
                 )
186 186
             ) . $this->get_commit_msg_tag();
187
-            $result = $persist->create_file( $blob, $message );
188
-            if ( is_wp_error( $result ) ) {
187
+            $result = $persist->create_file($blob, $message);
188
+            if (is_wp_error($result)) {
189 189
                 return $result;
190 190
             }
191
-        } elseif ( $old_github_path && $old_github_path == $github_path ) {
191
+        } elseif ($old_github_path && $old_github_path == $github_path) {
192 192
             // update
193
-            $sha = wogh_git_sha( $blob->content() );
194
-            if ( $sha === $blob->sha() ) {
193
+            $sha = wogh_git_sha($blob->content());
194
+            if ($sha === $blob->sha()) {
195 195
                 // don't export when has not changed
196 196
                 return true;
197 197
             }
@@ -201,18 +201,18 @@  discard block
 block discarded – undo
201 201
                     'Update post %s from WordPress at %s (%s)',
202 202
                     $github_path,
203 203
                     site_url(),
204
-                    get_bloginfo( 'name' )
204
+                    get_bloginfo('name')
205 205
                 )
206 206
             ) . $this->get_commit_msg_tag();
207
-            $result = $persist->update_file( $blob, $message );
208
-            if ( is_wp_error( $result ) ) {
207
+            $result = $persist->update_file($blob, $message);
208
+            if (is_wp_error($result)) {
209 209
                 return $result;
210 210
             }
211 211
         }
212 212
 
213 213
         $sha = $result->content->sha;
214
-        $post->set_sha( $sha );
215
-        $post->set_old_github_path( $github_path );
214
+        $post->set_sha($sha);
215
+        $post->set_old_github_path($github_path);
216 216
 
217 217
         return true;
218 218
     }
@@ -224,15 +224,15 @@  discard block
 block discarded – undo
224 224
      *
225 225
      * @return string|WP_Error
226 226
      */
227
-    public function delete( $post_id ) {
228
-        $post = $this->app->database()->fetch_by_id( $post_id );
227
+    public function delete($post_id) {
228
+        $post = $this->app->database()->fetch_by_id($post_id);
229 229
 
230
-        if ( is_wp_error( $post ) ) {
230
+        if (is_wp_error($post)) {
231 231
             /* @var WP_Error $post */
232 232
             return $post;
233 233
         }
234 234
 
235
-        $github_path = get_post_meta( $post_id, '_wogh_github_path', true );
235
+        $github_path = get_post_meta($post_id, '_wogh_github_path', true);
236 236
 
237 237
         $message = apply_filters(
238 238
             'wogh_commit_msg_delete',
@@ -240,19 +240,19 @@  discard block
 block discarded – undo
240 240
                 'Deleting %s via WordPress at %s (%s)',
241 241
                 $github_path,
242 242
                 site_url(),
243
-                get_bloginfo( 'name' )
243
+                get_bloginfo('name')
244 244
             ),
245 245
             $post
246 246
         ) . $this->get_commit_msg_tag();
247 247
 
248
-        $result = $this->app->api()->persist()->delete_file( $github_path, $post->sha(), $message );
248
+        $result = $this->app->api()->persist()->delete_file($github_path, $post->sha(), $message);
249 249
 
250
-        if ( is_wp_error( $result ) ) {
250
+        if (is_wp_error($result)) {
251 251
             /* @var WP_Error $result */
252 252
             return $result;
253 253
         }
254 254
 
255
-        return __( 'Export to GitHub completed successfully.', 'writing-on-github' );
255
+        return __('Export to GitHub completed successfully.', 'writing-on-github');
256 256
     }
257 257
 
258 258
 
@@ -263,8 +263,8 @@  discard block
 block discarded – undo
263 263
      *
264 264
      * @return bool
265 265
      */
266
-    public function set_user( $user_id ) {
267
-        return update_option( self::EXPORT_USER_OPTION, (int) $user_id );
266
+    public function set_user($user_id) {
267
+        return update_option(self::EXPORT_USER_OPTION, (int) $user_id);
268 268
     }
269 269
 
270 270
     /**
@@ -273,10 +273,10 @@  discard block
 block discarded – undo
273 273
      * @return string
274 274
      */
275 275
     protected function get_commit_msg_tag() {
276
-        $tag = apply_filters( 'wogh_commit_msg_tag', 'wogh' );
276
+        $tag = apply_filters('wogh_commit_msg_tag', 'wogh');
277 277
 
278
-        if ( ! $tag ) {
279
-            throw new Exception( __( 'Commit message tag not set. Filter `wogh_commit_msg_tag` misconfigured.', 'writing-on-github' ) );
278
+        if ( ! $tag) {
279
+            throw new Exception(__('Commit message tag not set. Filter `wogh_commit_msg_tag` misconfigured.', 'writing-on-github'));
280 280
         }
281 281
 
282 282
         return ' - ' . $tag;
Please login to merge, or discard this patch.
lib/blob.php 2 patches
Indentation   +243 added lines, -243 removed lines patch added patch discarded remove patch
@@ -9,247 +9,247 @@
 block discarded – undo
9 9
  */
10 10
 class Writing_On_GitHub_Blob {
11 11
 
12
-    /**
13
-     * Complete blob content.
14
-     *
15
-     * @var string
16
-     */
17
-    protected $content;
18
-
19
-    /**
20
-     * Blob sha.
21
-     *
22
-     * @var string
23
-     */
24
-    protected $sha;
25
-
26
-    /**
27
-     * Blob path.
28
-     *
29
-     * @var string
30
-     */
31
-    protected $path;
32
-
33
-    /**
34
-     * Post id.
35
-     *
36
-     * @var int
37
-     */
38
-    protected $id;
39
-
40
-    /**
41
-     * Whether the blob has frontmatter.
42
-     *
43
-     * @var boolean
44
-     */
45
-    protected $frontmatter = false;
46
-
47
-    /**
48
-     * The front matter of github post
49
-     * @var string
50
-     */
51
-    protected $front_matter = '';
52
-
53
-    /**
54
-     * Content without front matter
55
-     * @var string
56
-     */
57
-    protected $post_content;
58
-
59
-    /**
60
-     * Instantiates a new Blob object.
61
-     *
62
-     * @param stdClass $data Raw blob data.
63
-     */
64
-    public function __construct( stdClass $data ) {
65
-        $this->interpret_data( $data );
66
-    }
67
-
68
-    public function id() {
69
-        return $this->id;
70
-    }
71
-
72
-    public function set_id($id) {
73
-        $this->id = $id;
74
-    }
75
-
76
-    /**
77
-     * Returns the raw blob content.
78
-     *
79
-     * @return string
80
-     */
81
-    public function content() {
82
-        return $this->content;
83
-    }
84
-
85
-    /**
86
-     * Set's the blob's content.
87
-     *
88
-     * @param string $content Raw blob content.
89
-     * @param bool   $base64 Whether the content is base64 encoded.
90
-     *
91
-     * @return $this
92
-     */
93
-    public function set_content( $content, $base64 = false ) {
94
-        if ( $base64 ) {
95
-            $content = base64_decode( $content );
96
-        }
97
-
98
-        // remove whitespace from the beginning of content,
99
-        // To prevent blank lines before yml
100
-        $this->content = ltrim( $content );
101
-
102
-        $this->frontmatter = '---' === substr( $this->content, 0, 3 );
103
-
104
-        return $this;
105
-    }
106
-    /**
107
-     * Returns the blob sha.
108
-     *
109
-     * @return string
110
-     */
111
-    public function sha() {
112
-        return $this->sha;
113
-    }
114
-
115
-    /**
116
-     * Return's the blob path.
117
-     *
118
-     * @return string
119
-     */
120
-    public function path() {
121
-        return $this->path;
122
-    }
123
-
124
-    /**
125
-     * Whether the blob has frontmatter.
126
-     *
127
-     * @return bool
128
-     */
129
-    public function has_frontmatter() {
130
-        return $this->frontmatter;
131
-    }
132
-
133
-    /**
134
-     * The front matter of github post
135
-     * @return string
136
-     */
137
-    public function front_matter() {
138
-        return $this->front_matter;
139
-    }
140
-
141
-    /**
142
-     * Content without front matter
143
-     * @return string
144
-     */
145
-    public function post_content() {
146
-        if ( ! $this->post_content ) {
147
-            $this->content_import();
148
-        }
149
-        return $this->post_content;
150
-    }
151
-
152
-    /**
153
-     * Returns the formatted/filtered blob content used for import.
154
-     *
155
-     * @return string
156
-     */
157
-    public function content_import() {
158
-        $this->post_content = $content = $this->content();
159
-
160
-        if ( $this->has_frontmatter() ) {
161
-            // Break out content.
162
-            preg_match( '/(^---(.*?)---$(\r\n|\n|\r)?)?(.*)/ms', $content, $matches );
163
-            $this->front_matter = $matches[1];
164
-            $this->post_content = $content = array_pop( $matches );
165
-        }
166
-
167
-        if ( function_exists( 'wpmarkdown_markdown_to_html' ) ) {
168
-            $content = wpmarkdown_markdown_to_html( $content );
169
-        }
170
-
171
-        /**
172
-         * Filters the content for import.
173
-         */
174
-        return apply_filters( 'wogh_content_import', trim( $content ) );
175
-    }
176
-
177
-    /**
178
-     * Returns the blob meta.
179
-     *
180
-     * @return array
181
-     */
182
-    public function meta() {
183
-        $meta = array();
184
-
185
-        if ( $this->has_frontmatter() ) {
186
-            // Break out meta, if present.
187
-            preg_match( '/(^---(.*?)---$)?(.*)/ms', $this->content(), $matches );
188
-            array_pop( $matches );
189
-
190
-            $meta = spyc_load( $matches[2] );
191
-            if ( 'yes' == get_option('wogh_ignore_author') ) {
192
-                unset($meta['author']);
193
-            }
194
-            // if ( isset( $meta['link'] ) ) {
195
-            //  $meta['link'] = str_replace( home_url(), '', $meta['link'] );
196
-            // }
197
-        }
198
-
199
-        return $meta;
200
-    }
201
-
202
-    /**
203
-     * Formats the blob into an API call body.
204
-     *
205
-     * @return stdClass
206
-     */
207
-    // public function to_body() {
208
-    //  $data = new stdClass;
209
-
210
-    //  $data->mode = '100644';
211
-    //  $data->type = 'blob';
212
-
213
-    //  $data->path = $this->path();
214
-
215
-    //  if ( $this->sha() ) {
216
-    //      $data->sha = $this->sha();
217
-    //  } else {
218
-    //      $data->content = $this->content();
219
-    //  }
220
-
221
-    //  return $data;
222
-    // }
223
-
224
-
225
-    /**
226
-     * Formats the blob into an API call body.
227
-     *
228
-     * @return stdClass
229
-     */
230
-    public function to_body() {
231
-        $data = new stdClass;
232
-
233
-        // $data->mode = '100644';
234
-        // $data->type = 'blob';
235
-
236
-        $data->path = $this->path();
237
-        $data->content = base64_encode( $this->content() );
238
-        $data->sha = $this->sha;
239
-
240
-        return $data;
241
-    }
242
-
243
-    /**
244
-     * Interprets the blob's data into properties.
245
-     */
246
-    protected function interpret_data( $data ) {
247
-        $this->sha  = isset( $data->sha  ) ? $data->sha  : '';
248
-        $this->path = isset( $data->path ) ? $data->path : '';
249
-
250
-        $this->set_content(
251
-            isset( $data->content ) ? $data->content : '',
252
-            isset( $data->encoding ) && 'base64' === $data->encoding ? true : false
253
-        );
254
-    }
12
+	/**
13
+	 * Complete blob content.
14
+	 *
15
+	 * @var string
16
+	 */
17
+	protected $content;
18
+
19
+	/**
20
+	 * Blob sha.
21
+	 *
22
+	 * @var string
23
+	 */
24
+	protected $sha;
25
+
26
+	/**
27
+	 * Blob path.
28
+	 *
29
+	 * @var string
30
+	 */
31
+	protected $path;
32
+
33
+	/**
34
+	 * Post id.
35
+	 *
36
+	 * @var int
37
+	 */
38
+	protected $id;
39
+
40
+	/**
41
+	 * Whether the blob has frontmatter.
42
+	 *
43
+	 * @var boolean
44
+	 */
45
+	protected $frontmatter = false;
46
+
47
+	/**
48
+	 * The front matter of github post
49
+	 * @var string
50
+	 */
51
+	protected $front_matter = '';
52
+
53
+	/**
54
+	 * Content without front matter
55
+	 * @var string
56
+	 */
57
+	protected $post_content;
58
+
59
+	/**
60
+	 * Instantiates a new Blob object.
61
+	 *
62
+	 * @param stdClass $data Raw blob data.
63
+	 */
64
+	public function __construct( stdClass $data ) {
65
+		$this->interpret_data( $data );
66
+	}
67
+
68
+	public function id() {
69
+		return $this->id;
70
+	}
71
+
72
+	public function set_id($id) {
73
+		$this->id = $id;
74
+	}
75
+
76
+	/**
77
+	 * Returns the raw blob content.
78
+	 *
79
+	 * @return string
80
+	 */
81
+	public function content() {
82
+		return $this->content;
83
+	}
84
+
85
+	/**
86
+	 * Set's the blob's content.
87
+	 *
88
+	 * @param string $content Raw blob content.
89
+	 * @param bool   $base64 Whether the content is base64 encoded.
90
+	 *
91
+	 * @return $this
92
+	 */
93
+	public function set_content( $content, $base64 = false ) {
94
+		if ( $base64 ) {
95
+			$content = base64_decode( $content );
96
+		}
97
+
98
+		// remove whitespace from the beginning of content,
99
+		// To prevent blank lines before yml
100
+		$this->content = ltrim( $content );
101
+
102
+		$this->frontmatter = '---' === substr( $this->content, 0, 3 );
103
+
104
+		return $this;
105
+	}
106
+	/**
107
+	 * Returns the blob sha.
108
+	 *
109
+	 * @return string
110
+	 */
111
+	public function sha() {
112
+		return $this->sha;
113
+	}
114
+
115
+	/**
116
+	 * Return's the blob path.
117
+	 *
118
+	 * @return string
119
+	 */
120
+	public function path() {
121
+		return $this->path;
122
+	}
123
+
124
+	/**
125
+	 * Whether the blob has frontmatter.
126
+	 *
127
+	 * @return bool
128
+	 */
129
+	public function has_frontmatter() {
130
+		return $this->frontmatter;
131
+	}
132
+
133
+	/**
134
+	 * The front matter of github post
135
+	 * @return string
136
+	 */
137
+	public function front_matter() {
138
+		return $this->front_matter;
139
+	}
140
+
141
+	/**
142
+	 * Content without front matter
143
+	 * @return string
144
+	 */
145
+	public function post_content() {
146
+		if ( ! $this->post_content ) {
147
+			$this->content_import();
148
+		}
149
+		return $this->post_content;
150
+	}
151
+
152
+	/**
153
+	 * Returns the formatted/filtered blob content used for import.
154
+	 *
155
+	 * @return string
156
+	 */
157
+	public function content_import() {
158
+		$this->post_content = $content = $this->content();
159
+
160
+		if ( $this->has_frontmatter() ) {
161
+			// Break out content.
162
+			preg_match( '/(^---(.*?)---$(\r\n|\n|\r)?)?(.*)/ms', $content, $matches );
163
+			$this->front_matter = $matches[1];
164
+			$this->post_content = $content = array_pop( $matches );
165
+		}
166
+
167
+		if ( function_exists( 'wpmarkdown_markdown_to_html' ) ) {
168
+			$content = wpmarkdown_markdown_to_html( $content );
169
+		}
170
+
171
+		/**
172
+		 * Filters the content for import.
173
+		 */
174
+		return apply_filters( 'wogh_content_import', trim( $content ) );
175
+	}
176
+
177
+	/**
178
+	 * Returns the blob meta.
179
+	 *
180
+	 * @return array
181
+	 */
182
+	public function meta() {
183
+		$meta = array();
184
+
185
+		if ( $this->has_frontmatter() ) {
186
+			// Break out meta, if present.
187
+			preg_match( '/(^---(.*?)---$)?(.*)/ms', $this->content(), $matches );
188
+			array_pop( $matches );
189
+
190
+			$meta = spyc_load( $matches[2] );
191
+			if ( 'yes' == get_option('wogh_ignore_author') ) {
192
+				unset($meta['author']);
193
+			}
194
+			// if ( isset( $meta['link'] ) ) {
195
+			//  $meta['link'] = str_replace( home_url(), '', $meta['link'] );
196
+			// }
197
+		}
198
+
199
+		return $meta;
200
+	}
201
+
202
+	/**
203
+	 * Formats the blob into an API call body.
204
+	 *
205
+	 * @return stdClass
206
+	 */
207
+	// public function to_body() {
208
+	//  $data = new stdClass;
209
+
210
+	//  $data->mode = '100644';
211
+	//  $data->type = 'blob';
212
+
213
+	//  $data->path = $this->path();
214
+
215
+	//  if ( $this->sha() ) {
216
+	//      $data->sha = $this->sha();
217
+	//  } else {
218
+	//      $data->content = $this->content();
219
+	//  }
220
+
221
+	//  return $data;
222
+	// }
223
+
224
+
225
+	/**
226
+	 * Formats the blob into an API call body.
227
+	 *
228
+	 * @return stdClass
229
+	 */
230
+	public function to_body() {
231
+		$data = new stdClass;
232
+
233
+		// $data->mode = '100644';
234
+		// $data->type = 'blob';
235
+
236
+		$data->path = $this->path();
237
+		$data->content = base64_encode( $this->content() );
238
+		$data->sha = $this->sha;
239
+
240
+		return $data;
241
+	}
242
+
243
+	/**
244
+	 * Interprets the blob's data into properties.
245
+	 */
246
+	protected function interpret_data( $data ) {
247
+		$this->sha  = isset( $data->sha  ) ? $data->sha  : '';
248
+		$this->path = isset( $data->path ) ? $data->path : '';
249
+
250
+		$this->set_content(
251
+			isset( $data->content ) ? $data->content : '',
252
+			isset( $data->encoding ) && 'base64' === $data->encoding ? true : false
253
+		);
254
+	}
255 255
 }
Please login to merge, or discard this patch.
Spacing   +25 added lines, -25 removed lines patch added patch discarded remove patch
@@ -61,8 +61,8 @@  discard block
 block discarded – undo
61 61
      *
62 62
      * @param stdClass $data Raw blob data.
63 63
      */
64
-    public function __construct( stdClass $data ) {
65
-        $this->interpret_data( $data );
64
+    public function __construct(stdClass $data) {
65
+        $this->interpret_data($data);
66 66
     }
67 67
 
68 68
     public function id() {
@@ -90,16 +90,16 @@  discard block
 block discarded – undo
90 90
      *
91 91
      * @return $this
92 92
      */
93
-    public function set_content( $content, $base64 = false ) {
94
-        if ( $base64 ) {
95
-            $content = base64_decode( $content );
93
+    public function set_content($content, $base64 = false) {
94
+        if ($base64) {
95
+            $content = base64_decode($content);
96 96
         }
97 97
 
98 98
         // remove whitespace from the beginning of content,
99 99
         // To prevent blank lines before yml
100
-        $this->content = ltrim( $content );
100
+        $this->content = ltrim($content);
101 101
 
102
-        $this->frontmatter = '---' === substr( $this->content, 0, 3 );
102
+        $this->frontmatter = '---' === substr($this->content, 0, 3);
103 103
 
104 104
         return $this;
105 105
     }
@@ -143,7 +143,7 @@  discard block
 block discarded – undo
143 143
      * @return string
144 144
      */
145 145
     public function post_content() {
146
-        if ( ! $this->post_content ) {
146
+        if ( ! $this->post_content) {
147 147
             $this->content_import();
148 148
         }
149 149
         return $this->post_content;
@@ -157,21 +157,21 @@  discard block
 block discarded – undo
157 157
     public function content_import() {
158 158
         $this->post_content = $content = $this->content();
159 159
 
160
-        if ( $this->has_frontmatter() ) {
160
+        if ($this->has_frontmatter()) {
161 161
             // Break out content.
162
-            preg_match( '/(^---(.*?)---$(\r\n|\n|\r)?)?(.*)/ms', $content, $matches );
162
+            preg_match('/(^---(.*?)---$(\r\n|\n|\r)?)?(.*)/ms', $content, $matches);
163 163
             $this->front_matter = $matches[1];
164
-            $this->post_content = $content = array_pop( $matches );
164
+            $this->post_content = $content = array_pop($matches);
165 165
         }
166 166
 
167
-        if ( function_exists( 'wpmarkdown_markdown_to_html' ) ) {
168
-            $content = wpmarkdown_markdown_to_html( $content );
167
+        if (function_exists('wpmarkdown_markdown_to_html')) {
168
+            $content = wpmarkdown_markdown_to_html($content);
169 169
         }
170 170
 
171 171
         /**
172 172
          * Filters the content for import.
173 173
          */
174
-        return apply_filters( 'wogh_content_import', trim( $content ) );
174
+        return apply_filters('wogh_content_import', trim($content));
175 175
     }
176 176
 
177 177
     /**
@@ -182,13 +182,13 @@  discard block
 block discarded – undo
182 182
     public function meta() {
183 183
         $meta = array();
184 184
 
185
-        if ( $this->has_frontmatter() ) {
185
+        if ($this->has_frontmatter()) {
186 186
             // Break out meta, if present.
187
-            preg_match( '/(^---(.*?)---$)?(.*)/ms', $this->content(), $matches );
188
-            array_pop( $matches );
187
+            preg_match('/(^---(.*?)---$)?(.*)/ms', $this->content(), $matches);
188
+            array_pop($matches);
189 189
 
190
-            $meta = spyc_load( $matches[2] );
191
-            if ( 'yes' == get_option('wogh_ignore_author') ) {
190
+            $meta = spyc_load($matches[2]);
191
+            if ('yes' == get_option('wogh_ignore_author')) {
192 192
                 unset($meta['author']);
193 193
             }
194 194
             // if ( isset( $meta['link'] ) ) {
@@ -234,7 +234,7 @@  discard block
 block discarded – undo
234 234
         // $data->type = 'blob';
235 235
 
236 236
         $data->path = $this->path();
237
-        $data->content = base64_encode( $this->content() );
237
+        $data->content = base64_encode($this->content());
238 238
         $data->sha = $this->sha;
239 239
 
240 240
         return $data;
@@ -243,13 +243,13 @@  discard block
 block discarded – undo
243 243
     /**
244 244
      * Interprets the blob's data into properties.
245 245
      */
246
-    protected function interpret_data( $data ) {
247
-        $this->sha  = isset( $data->sha  ) ? $data->sha  : '';
248
-        $this->path = isset( $data->path ) ? $data->path : '';
246
+    protected function interpret_data($data) {
247
+        $this->sha  = isset($data->sha) ? $data->sha : '';
248
+        $this->path = isset($data->path) ? $data->path : '';
249 249
 
250 250
         $this->set_content(
251
-            isset( $data->content ) ? $data->content : '',
252
-            isset( $data->encoding ) && 'base64' === $data->encoding ? true : false
251
+            isset($data->content) ? $data->content : '',
252
+            isset($data->encoding) && 'base64' === $data->encoding ? true : false
253 253
         );
254 254
     }
255 255
 }
Please login to merge, or discard this patch.
lib/function.php 2 patches
Indentation   +12 added lines, -12 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,9 +21,9 @@  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
 /**
@@ -31,7 +31,7 @@  discard block
 block discarded – undo
31 31
  * @return bool
32 32
  */
33 33
 function wogh_is_dont_export_content() {
34
-    return 'yes' === get_option( 'wogh_dont_export_content' );
34
+	return 'yes' === get_option( 'wogh_dont_export_content' );
35 35
 }
36 36
 
37 37
 /**
@@ -41,8 +41,8 @@  discard block
 block discarded – undo
41 41
  * @return string
42 42
  */
43 43
 function wogh_git_sha( $content ) {
44
-    // $header = "blob $len\0"
45
-    // sha1($header . $content)
46
-    $len = strlen( $content );
47
-    return sha1( "blob $len\0$content" );
44
+	// $header = "blob $len\0"
45
+	// sha1($header . $content)
46
+	$len = strlen( $content );
47
+	return sha1( "blob $len\0$content" );
48 48
 }
Please login to merge, or discard this patch.
Spacing   +8 added lines, -8 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,7 +20,7 @@  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);
@@ -31,7 +31,7 @@  discard block
 block discarded – undo
31 31
  * @return bool
32 32
  */
33 33
 function wogh_is_dont_export_content() {
34
-    return 'yes' === get_option( 'wogh_dont_export_content' );
34
+    return 'yes' === get_option('wogh_dont_export_content');
35 35
 }
36 36
 
37 37
 /**
@@ -40,9 +40,9 @@  discard block
 block discarded – undo
40 40
  * @param  string $content
41 41
  * @return string
42 42
  */
43
-function wogh_git_sha( $content ) {
43
+function wogh_git_sha($content) {
44 44
     // $header = "blob $len\0"
45 45
     // sha1($header . $content)
46
-    $len = strlen( $content );
47
-    return sha1( "blob $len\0$content" );
46
+    $len = strlen($content);
47
+    return sha1("blob $len\0$content");
48 48
 }
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( plugin_basename( __FILE__ ) );
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, 2 );
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( $force = false ) {
221
-        $this->start_cron( 'import', $force );
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( plugin_basename( __FILE__ ) );
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, 2 );
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( $force = false ) {
221
+		$this->start_cron( 'import', $force );
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   +60 added lines, -60 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() ) {
111
-            $this->admin = new Writing_On_GitHub_Admin( plugin_basename( __FILE__ ) );
110
+        if (is_admin()) {
111
+            $this->admin = new Writing_On_GitHub_Admin(plugin_basename(__FILE__));
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, 2 );
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, 2);
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
-    public function start_import( $force = false ) {
221
-        $this->start_cron( 'import', $force );
220
+    public function start_import($force = false) {
221
+        $this->start_cron('import', $force);
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.