From 9371d1e7f0b94da757d5b08ca0e2932871b869dc Mon Sep 17 00:00:00 2001
From: Justin Foell <630830+jrfoell@users.noreply.github.com>
Date: Fri, 1 Nov 2019 15:34:05 -0500
Subject: [PATCH] Remove old map caching now that all activity is cached
---
includes/WPStrava/LatestMap.php | 123 ++++++--------------------------
1 file changed, 20 insertions(+), 103 deletions(-)
diff --git a/includes/WPStrava/LatestMap.php b/includes/WPStrava/LatestMap.php
index 58b68f1..9b1cb75 100644
--- a/includes/WPStrava/LatestMap.php
+++ b/includes/WPStrava/LatestMap.php
@@ -3,8 +3,6 @@
class WPStrava_LatestMap {
public static function get_map_html( $args ) {
- $build_new = false;
-
$defaults = array(
'client_id' => WPStrava::get_instance()->settings->get_default_id(),
'strava_club_id' => null,
@@ -13,117 +11,36 @@ class WPStrava_LatestMap {
$args = wp_parse_args( $args, $defaults );
- $id = empty( $args['strava_club_id'] ) ? $args['client_id'] : $args['strava_club_id'];
+ $strava_activity = WPStrava::get_instance()->activity;
- // Try our transient first.
- $activity_transient = get_transient( 'strava_latest_map_activity_' . $id );
- $activity_option = get_option( 'strava_latest_map_activity_' . $id );
+ $activities = array();
- $activity = $activity_transient ? $activity_transient : null;
-
- if ( ! $activity || empty( $activity->map ) ) {
- $strava_activity = WPStrava::get_instance()->activity;
-
- $activities = array();
-
- try {
- $activities = $strava_activity->get_activities( $args['client_id'], $args['strava_club_id'] );
- } catch ( WPStrava_Exception $e ) {
- // If athlete_token is still set, warn about that first and foremost.
- if ( isset( $args['athlete_token'] ) ) {
- // Translators: Message shown when using deprecated athlete_token parameter.
- echo wp_kses_post( __( 'The athlete_token parameter is deprecated as of WP-Strava version 2 and should be replaced with client_id.', 'wp-strava' ) );
- } else {
- echo $e->to_html(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Debug only.
- }
- }
-
- if ( ! empty( $activities ) ) {
-
- if ( ! empty( $args['distance_min'] ) ) {
- $activities = $strava_activity->get_activities_longer_than( $activities, $args['distance_min'] );
- }
-
- $activity = current( $activities );
-
- // Compare transient (temporary storage) to option (more permanent).
- // If the option isn't set or the transient is different, update the option.
- if ( empty( $activity_option->id ) || $activity->id != $activity_option->id ) { // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
- $build_new = true;
- self::update_activity( $id, $activity );
- }
-
- // Update the transient if it needs updating.
- if ( empty( $activity_transient->id ) || $activity->id != $activity_transient->id ) { // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
- self::update_activity_transient( $id, $activity );
- }
+ try {
+ $activities = $strava_activity->get_activities( $args['client_id'], $args['strava_club_id'] );
+ } catch ( WPStrava_Exception $e ) {
+ // If athlete_token is still set, warn about that first and foremost.
+ if ( isset( $args['athlete_token'] ) ) {
+ // Translators: Message shown when using deprecated athlete_token parameter.
+ echo wp_kses_post( __( 'The athlete_token parameter is deprecated as of WP-Strava version 2 and should be replaced with client_id.', 'wp-strava' ) );
+ } else {
+ echo $e->to_html(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Debug only.
}
}
- if ( $activity ) {
+ if ( ! empty( $activities ) ) {
+
+ if ( ! empty( $args['distance_min'] ) ) {
+ $activities = $strava_activity->get_activities_longer_than( $activities, $args['distance_min'] );
+ }
+
+ $activity = current( $activities );
+
echo empty( $activity->map ) ?
// Translators: Text with activity name shown in place of image if not available.
esc_html( sprintf( __( 'Map not available for activity "%s"', 'wp-strava' ), $activity->name ) ) :
"" .
- self::get_static_image( $id, $activity, $build_new ) . // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Image OK.
+ WPStrava_StaticMap::get_image_tag( $activity ) . // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Image OK.
'';
}
-
- }
-
- /**
- * Get image for specific activity using Static Maps class.
- *
- * @author Justin Foell
- * @param string $id Client ID or Club ID.
- * @param object $activity Activity to get image for.
- * @param boolean $build_new Whether to refresh the image from cache.
- * @return string Image tag.
- */
- private static function get_static_image( $id, $activity, $build_new ) {
- $img = get_option( 'strava_latest_map_' . $id );
-
- if ( $build_new || ! $img ) {
- $img = WPStrava_StaticMap::get_image_tag( $activity );
- self::update_map( $id, $img );
- }
-
- return $img;
- }
-
- /**
- * Update map in option to cache.
- *
- * @author Justin Foell
- * @since 1.2.0
- * @param string $id Client ID or Club ID.
- * @param string $img Image tag.
- */
- private static function update_map( $id, $img ) {
- update_option( 'strava_latest_map_' . $id, $img );
- }
-
- /**
- * Update activity in option to cache.
- *
- * @author Justin Foell
- * @since 1.2.0
- * @param string $id Client ID or Club ID.
- * @param object $activity stdClass Strava activity object.
- */
- private static function update_activity( $id, $activity ) {
- update_option( 'strava_latest_map_activity_' . $id, $activity );
- }
-
- /**
- * Update activity in transient to cache.
- *
- * @author Justin Foell
- * @since 1.2.0
- * @param string $id CLient ID or Club ID.
- * @param object $activity stdClass Strava activity object.
- */
- private static function update_activity_transient( $id, $activity ) {
- set_transient( 'strava_latest_map_activity_' . $id, $activity, HOUR_IN_SECONDS );
}
}