fixing broken date query

This commit is contained in:
Peter Molnar 2015-04-29 14:00:03 +01:00
parent 46e6d74d67
commit c43db02457
2 changed files with 81 additions and 9 deletions

View file

@ -129,6 +129,7 @@ class Keyring_Facebook_Reactions extends Keyring_Reactions_Base {
foreach ( $results as $element ) { foreach ( $results as $element ) {
$ctime = strtotime($element->created_time); $ctime = strtotime($element->created_time);
Keyring_Util::debug(sprintf(__('CTIME %s','keyring'), $ctime));
$author_url = 'https://facebook.com/' . $element->from->id; $author_url = 'https://facebook.com/' . $element->from->id;
$name = $element->from->name; $name = $element->from->name;
$avatar = sprintf('https://graph.facebook.com/%s/picture/?width=%s&height=%s', $element->from->id, get_option( 'thumbnail_size_w' ), get_option( 'thumbnail_size_h' )); $avatar = sprintf('https://graph.facebook.com/%s/picture/?width=%s&height=%s', $element->from->id, get_option( 'thumbnail_size_w' ), get_option( 'thumbnail_size_h' ));
@ -153,6 +154,7 @@ class Keyring_Facebook_Reactions extends Keyring_Reactions_Base {
'comment_content' => $message, 'comment_content' => $message,
); );
//Keyring_Util::Debug (json_encode($c));
$this->insert_comment($post_id, $c, $element, $avatar); $this->insert_comment($post_id, $c, $element, $avatar);
} }
} }

View file

@ -98,6 +98,9 @@ abstract class Keyring_Reactions_Base {
// Add a Keyring handler to push us to the next step of the importer once connected // Add a Keyring handler to push us to the next step of the importer once connected
add_action( 'keyring_connection_verified', array( &$this, 'verified_connection' ), 10, 2 ); add_action( 'keyring_connection_verified', array( &$this, 'verified_connection' ), 10, 2 );
add_action( 'add_meta_boxes', array(&$this, 'add_post_meta_box' ));
add_action( 'save_post', array(&$this, 'handle_post_meta_box' ) );
// additional comment types // additional comment types
add_action('admin_comment_types_dropdown', array(&$this, 'comment_types_dropdown')); add_action('admin_comment_types_dropdown', array(&$this, 'comment_types_dropdown'));
@ -267,7 +270,7 @@ abstract class Keyring_Reactions_Base {
'limit_posts' => sanitize_text_field($_POST['limit_posts']), 'limit_posts' => sanitize_text_field($_POST['limit_posts']),
) ); ) );
$this->step = 'done'; $this->step = 'options';
} }
} }
@ -363,6 +366,11 @@ abstract class Keyring_Reactions_Base {
$this->step = (string) $_REQUEST['step']; $this->step = (string) $_REQUEST['step'];
} }
// Heading to a specific step of the importer
if ( isset( $_POST['refresh'] ) ) {
$this->step = 'import';
}
switch ( $this->step ) { switch ( $this->step ) {
case 'importsingle': case 'importsingle':
if ( empty( $_REQUEST['post_id'] ) || ctype_alpha( $_REQUEST['post_id'] ) ) { if ( empty( $_REQUEST['post_id'] ) || ctype_alpha( $_REQUEST['post_id'] ) ) {
@ -670,11 +678,11 @@ abstract class Keyring_Reactions_Base {
</table> </table>
<p class="submit"> <p class="submit">
<input type="submit" name="submit" class="button-primary" id="options-submit" value="<?php _e( 'Import', 'keyring' ); ?>" /> <input type="submit" name="submit" class="button-primary" id="options-submit" value="<?php _e( 'Save settings', 'keyring' ); ?>" />
<input type="submit" name="reset" value="<?php _e( 'Reset Importer', 'keyring' ); ?>" id="reset" class="button" /> <input type="submit" name="reset" value="<?php _e( 'Reset Importer', 'keyring' ); ?>" id="reset" class="button" />
</p> </p>
</form> </form>
<!--
<script type="text/javascript" charset="utf-8"> <script type="text/javascript" charset="utf-8">
jQuery( document ).ready( function() { jQuery( document ).ready( function() {
jQuery( '#auto_import' ).on( 'change', function() { jQuery( '#auto_import' ).on( 'change', function() {
@ -686,6 +694,7 @@ abstract class Keyring_Reactions_Base {
} ).change(); } ).change();
} ); } );
</script> </script>
-->
<?php <?php
$this->footer(); $this->footer();
@ -757,6 +766,62 @@ abstract class Keyring_Reactions_Base {
return true; return true;
} }
function add_post_meta_box () {
$post_id = false;
if (!empty($_POST['post_ID']))
$post_id = $_POST['post_ID'];
else if (!empty($_GET['post']))
$post_id = $_GET['post'];
$syndication_urls = get_post_meta( $post_id, 'syndication_urls', true);
if ( strstr( $syndication_urls, static::SILONAME )) {
add_meta_box(
'keyring-reactions-import-' . static::SILONAME,
esc_html__ (sprintf ( __('Import reactions for this post from %s', 'Keyring'), static::SILONAME)),
array(&$this, 'display_post_meta_box'),
'post',
'normal',
'default'
);
}
}
function display_post_meta_box() {
wp_nonce_field( basename( __FILE__ ), static::SILONAME );
?>
<p>
<?php
printf ( '<input style="margin-right: 1em;" class="button button-primary " "id="import-%s" name="import-%s" type="submit" value="Import"></input>', static::SLUG, static::SLUG, static::SLUG, static::SLUG );
printf ('<label for="import-%s">%s</label><br />', static::SLUG, sprintf(__('Manually import reactions from %s for this post now'), static::SILONAME ));
?>
</p>
<?php
/*"admin.php?import=<?php echo static::SLUG; ?>&amp;step=greet" */
}
function handle_post_meta_box( $post_id ) {
if ( !isset( $_POST [ static::SILONAME ] ))
return $post_id;
if (!wp_verify_nonce( $_POST[ static::SILONAME ], basename( __FILE__ ) ) )
return $post_id;
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
return $post_id;
if ( ! current_user_can( 'edit_page', $post_id ) )
return $post_id;
if (isset( $_POST['import-' . static::SLUG ] )) {
die ('eddig ok');
$this->do_single_import( $post_id );
}
}
/** /**
* Handle a cron request to pick up importing reactions from where we left off. * Handle a cron request to pick up importing reactions from where we left off.
* Since the posts array & the post pointer stays untouched until the import * Since the posts array & the post pointer stays untouched until the import
@ -1120,12 +1185,12 @@ abstract class Keyring_Reactions_Base {
if ( isset( $comment['comment_date']) && !empty($comment['comment_date']) ) { if ( isset( $comment['comment_date']) && !empty($comment['comment_date']) ) {
// in case you're aware of a nicer way of doing this, please tell me // in case you're aware of a nicer way of doing this, please tell me
// or commit a change... // or commit a change...
/*
$tmp = explode ( " ", $comment['comment_date'] ); $tmp = explode ( " ", $comment['comment_date'] );
$d = explode( "-", $tmp[0]); $d = explode( "-", $tmp[0]);
$t = explode (':',$tmp[1]); $t = explode (':',$tmp[1]);
$args['date_query'] = array( $testargs['date_query'] = array(
'year' => $d[0], 'year' => $d[0],
'monthnum' => $d[1], 'monthnum' => $d[1],
'day' => $d[2], 'day' => $d[2],
@ -1134,11 +1199,10 @@ abstract class Keyring_Reactions_Base {
'second' => $t[2], 'second' => $t[2],
); );
*/ //$testargs['date_query'] = $comment['comment_date'];
$testargs['date_query'] = $comment['comment_date'];
//test if we already have this imported //test if we already have this imported
Keyring_Util::debug(sprintf(__('checking comment existence for %s (with date) for post #%s','keyring'), $comment['comment_author_email'], $post_id)); Keyring_Util::Debug(sprintf(__('checking comment existence for %s (with date) for post #%s','keyring'), $comment['comment_author_email'], $post_id));
} }
else { else {
// we do need a date // we do need a date
@ -1149,7 +1213,9 @@ abstract class Keyring_Reactions_Base {
Keyring_Util::debug(sprintf(__('checking comment existence for %s (no date) for post #%s','keyring'), $comment['comment_author_email'], $post_id)); Keyring_Util::debug(sprintf(__('checking comment existence for %s (no date) for post #%s','keyring'), $comment['comment_author_email'], $post_id));
} }
Keyring_Util::debug(json_encode($testargs));
$existing = get_comments($testargs); $existing = get_comments($testargs);
Keyring_Util::debug(json_encode($existing));
// no matching comment yet, insert it // no matching comment yet, insert it
if (empty($existing)) { if (empty($existing)) {
@ -1157,7 +1223,7 @@ abstract class Keyring_Reactions_Base {
// disable flood control, just in case // disable flood control, just in case
remove_filter('check_comment_flood', 'check_comment_flood_db', 10, 3); remove_filter('check_comment_flood', 'check_comment_flood_db', 10, 3);
Keyring_Util::debug(sprintf(__('inserting comment for post #%s','keyring'), $post_id)); //Keyring_Util::debug(sprintf(__('inserting comment for post #%s','keyring'), $post_id));
// add comment // add comment
// DON'T use wp_new_comment - if there are like ~1k reactions, // DON'T use wp_new_comment - if there are like ~1k reactions,
@ -1176,6 +1242,9 @@ abstract class Keyring_Reactions_Base {
// info // info
$r = sprintf (__("New %s #%s from %s imported from %s for #%s", 'keyring'), $comment['comment_type'], $comment_id, $comment['comment_author'], self::SILONAME, $post_id ); $r = sprintf (__("New %s #%s from %s imported from %s for #%s", 'keyring'), $comment['comment_type'], $comment_id, $comment['comment_author'], self::SILONAME, $post_id );
} }
else {
$r = sprintf (__("Something went wrong inserting %s for #%s from %s", 'keyring'), $comment['comment_type'], $post_id, self::SILONAME);
}
// re-add flood control // re-add flood control
add_filter('check_comment_flood', 'check_comment_flood_db', 10, 3); add_filter('check_comment_flood', 'check_comment_flood_db', 10, 3);
} }
@ -1184,6 +1253,7 @@ abstract class Keyring_Reactions_Base {
$r = sprintf (__("Already exists: %s from %s for #%s", 'keyring'), $comment['comment_type'], $comment['comment_author'], $post_id ); $r = sprintf (__("Already exists: %s from %s for #%s", 'keyring'), $comment['comment_type'], $comment['comment_author'], $post_id );
} }
Keyring_Util::debug($r);
return $comment_id; return $comment_id;
} }