WP RSS Aggregator - Version 4.2.3

Version Description

(2014-07-29) = * Enhanced: Added an option to choose between the current pagination type, and numbered pagination. * Enhanced: The Feed Preview now also shows the total number of items in the feed. * Fixed bug: A PHP warning error was being shown in the System Info. * Fixed bug: Language files were not always being referenced correctly. * Fixed bug: Manually fetching a feed fails if the feed is scheduled to update in the next 10 minutes. * Fixed bug: Bing RSS feeds were importing duplicates on every update.

Download this release

Release Info

Developer jeangalea
Plugin Icon 128x128 WP RSS Aggregator
Version 4.2.3
Comparing to
See all releases

Code changes from version 4.2.2 to 4.2.3

changelog.txt CHANGED
@@ -1,3 +1,11 @@
 
 
 
 
 
 
 
 
1
  4.2.2 (2014-07-23)
2
  Enhanced: Improved live updating performace on the Feed Sources page.
3
  Enhanced: Facebook page feeds are now changed into RSS 2.0 feeds, rather than Atom 1.0 feeds.
1
+ 4.2.3 (2014-07-29)
2
+ Enhanced: Added an option to choose between the current pagination type, and numbered pagination.
3
+ Enhanced: The Feed Preview now also shows the total number of items in the feed.
4
+ Fixed bug: A PHP warning error was being shown in the System Info.
5
+ Fixed bug: Language files were not always being referenced correctly.
6
+ Fixed bug: Manually fetching a feed fails if the feed is scheduled to update in the next 10 minutes.
7
+ Fixed bug: Bing RSS feeds were importing duplicates on every update.
8
+
9
  4.2.2 (2014-07-23)
10
  Enhanced: Improved live updating performace on the Feed Sources page.
11
  Enhanced: Facebook page feeds are now changed into RSS 2.0 feeds, rather than Atom 1.0 feeds.
images/welcome-page/default-pagination.png ADDED
Binary file
images/welcome-page/numbered-pagination.png ADDED
Binary file
includes/admin-display.php CHANGED
@@ -433,9 +433,27 @@
433
  if ( isset( $_POST['id'] ) && !empty( $_POST['id'] ) ) {
434
  $id = $_POST['id'];
435
  update_post_meta( $id, 'wprss_force_next_fetch', '1' );
436
- // Prepare the schedule
 
437
  $schedule_args = array( strval( $id ) );
438
- wp_schedule_single_event( time(), 'wprss_fetch_single_feed_hook', $schedule_args );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
439
  die();
440
  }
441
  }
433
  if ( isset( $_POST['id'] ) && !empty( $_POST['id'] ) ) {
434
  $id = $_POST['id'];
435
  update_post_meta( $id, 'wprss_force_next_fetch', '1' );
436
+
437
+ // Prepare the schedule args
438
  $schedule_args = array( strval( $id ) );
439
+
440
+ // Get the current schedule - do nothing if not scheduled
441
+ $next_scheduled = wp_next_scheduled( 'wprss_fetch_single_feed_hook', $schedule_args );
442
+ if ( $next_scheduled !== FALSE ) {
443
+ // If scheduled, unschedule it
444
+ wp_unschedule_event( $next_scheduled, 'wprss_fetch_single_feed_hook', $schedule_args );
445
+
446
+ // Get the interval option for the feed source
447
+ $interval = get_post_meta( $feed_id, 'wprss_update_interval', TRUE );
448
+ // if the feed source uses its own interval
449
+ if ( $interval !== '' && $interval !== wprss_get_default_feed_source_update_interval() ) {
450
+ // Add meta in feed source. This is used to notify the source that it needs to reschedule it
451
+ update_post_meta( $id, 'wprss_reschedule_event', $next_scheduled );
452
+ }
453
+ }
454
+
455
+ // Schedule the event for 5 seconds from now
456
+ wp_schedule_single_event( time() + 1, 'wprss_fetch_single_feed_hook', $schedule_args );
457
  die();
458
  }
459
  }
includes/admin-metaboxes.php CHANGED
@@ -336,12 +336,14 @@
336
  $feed = wprss_fetch_feed( $feed_url, $post->ID );
337
  if ( ! is_wp_error( $feed ) ) {
338
  $items = $feed->get_items();
339
- // Figure out how many total items there are, but limit it to 5.
340
- $maxitems = $feed->get_item_quantity(5);
 
 
341
 
342
  // Build an array of all the items, starting with element 0 (first element).
343
  $items = $feed->get_items( 0, $maxitems );
344
- echo '<h4>Latest 5 feed items available from ' . get_the_title() . '</h4>';
345
  echo '<ul>';
346
  foreach ( $items as $item ) {
347
  // Get human date (comment if you want to use non human date)
336
  $feed = wprss_fetch_feed( $feed_url, $post->ID );
337
  if ( ! is_wp_error( $feed ) ) {
338
  $items = $feed->get_items();
339
+ // Figure out how many total items there are
340
+ $total = $feed->get_item_quantity();
341
+ // Get the number of items again, but limit it to 5.
342
+ $maxitems = $feed->get_item_quantity(5);
343
 
344
  // Build an array of all the items, starting with element 0 (first element).
345
  $items = $feed->get_items( 0, $maxitems );
346
+ echo "<h4>Latest $maxitems feed items out of $total available from " . get_the_title() . '</h4>';
347
  echo '<ul>';
348
  foreach ( $items as $item ) {
349
  // Get human date (comment if you want to use non human date)
includes/admin-options.php CHANGED
@@ -148,7 +148,10 @@
148
  'label' => __( 'Text preceding date', 'wprss' ),
149
  'callback' => 'wprss_setting_text_preceding_date_callback'
150
  ),
151
-
 
 
 
152
  'feed-limit' => array(
153
  'label' => __( 'Feed display limit', 'wprss' ),
154
  'callback' => 'wprss_setting_feed_limit_callback'
@@ -497,6 +500,27 @@
497
  }
498
 
499
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
500
 
501
  /**
502
  * Limit number of feed items stored by their age
148
  'label' => __( 'Text preceding date', 'wprss' ),
149
  'callback' => 'wprss_setting_text_preceding_date_callback'
150
  ),
151
+ 'pagination' => array(
152
+ 'label' => __( 'Pagination type', 'wprss' ),
153
+ 'callback' => 'wprss_setting_pagination_type_callback',
154
+ ),
155
  'feed-limit' => array(
156
  'label' => __( 'Feed display limit', 'wprss' ),
157
  'callback' => 'wprss_setting_feed_limit_callback'
500
  }
501
 
502
 
503
+ /**
504
+ * Pagination Type
505
+ *
506
+ * @since 4.2.3
507
+ */
508
+ function wprss_setting_pagination_type_callback() {
509
+ $pagination = wprss_get_general_setting( 'pagination' );
510
+ $options = array(
511
+ 'default' => '"Older posts" and "Newer posts" links',
512
+ 'numbered' => 'Page numbers with "Next" and "Previous" page links',
513
+ );
514
+ echo "<select id='pagination' name='wprss_settings_general[pagination]'>";
515
+ foreach( $options as $value => $text ) {
516
+ $selected = ( $value === $pagination )? 'selected="selected"' : '';
517
+ echo "<option value='$value' $selected>$text</option>";
518
+ }
519
+ echo "</select>";
520
+ echo "<label class='description' for='pagination'>Choose the pagination type to use when displaying multiple pages of feed items.</label>";
521
+ }
522
+
523
+
524
 
525
  /**
526
  * Limit number of feed items stored by their age
includes/admin-welcome.php CHANGED
@@ -58,8 +58,31 @@
58
  default: ?>
59
  <div class="changelog">
60
 
61
- <h3>Feed Sources Page Visual Updated!</h3>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
62
 
 
63
  <div class="feature-section col three-col">
64
 
65
  <div class="col-1">
@@ -109,8 +132,12 @@
109
 
110
  <h3>Changelog for v<?php echo WPRSS_VERSION; ?></h3>
111
  <ul>
112
- <li><strong>Enhanced:</strong> Improved live updating performace on the Feed Sources page.</li>
113
- <li><strong>Enhanced:</strong> Facebook page feeds are now changed into RSS 2.0 feeds, rather than Atom 1.0 feeds.</li>
 
 
 
 
114
  </ul>
115
 
116
  <p>Need functionality not already available in core or the add-ons? You can <a href="http://www.wprssaggregator.com/feature-requests/">suggest new features</a>!</p>
58
  default: ?>
59
  <div class="changelog">
60
 
61
+ <h2 class="about-headline-callout">New Pagination Options</h2>
62
+ <div class="feature-section col two-col">
63
+ <div class="col-1">
64
+ <img src="<?php echo WPRSS_IMG;?>welcome-page/default-pagination.png" />
65
+ <h4>Default Pagination</h4>
66
+ <p>
67
+ The default pagination from the previous versions of WP RSS Aggregator,
68
+ showing links for <strong>Older Posts</strong> and <strong>Newer Posts</strong>.
69
+ </p>
70
+ </div>
71
+ <div class="col-2 last-feature">
72
+ <img src="<?php echo WPRSS_IMG;?>welcome-page/numbered-pagination.png" />
73
+ <h4>Numbered Pagination</h4>
74
+ <p>
75
+ The new numbered pagination - Show <strong>Next</strong> and <strong>Previous</strong> links,
76
+ along with links for each page of feed items.
77
+ </p>
78
+ </div>
79
+ </div>
80
+
81
+
82
+ <hr/>
83
+
84
 
85
+ <h2 class="about-headline-callout">Feed Sources Page Visual Updated!</h2>
86
  <div class="feature-section col three-col">
87
 
88
  <div class="col-1">
132
 
133
  <h3>Changelog for v<?php echo WPRSS_VERSION; ?></h3>
134
  <ul>
135
+ <li><strong>Enhanced:</strong> Added an option to choose between the current pagination type, and numbered pagination.</li>
136
+ <li><strong>Enhanced:</strong> The Feed Preview now also shows the total number of items in the feed.</li>
137
+ <li><strong>Fixed bug:</strong> A PHP warning error was being shown in the System Info.</li>
138
+ <li><strong>Fixed bug:</strong> Language files were not always being referenced correctly.</li>
139
+ <li><strong>Fixed bug:</strong> Manually fetching a feed fails if the feed is scheduled to update in the next 10 minutes.</li>
140
+ <li><strong>Fixed bug:</strong> Bing RSS feeds were importing duplicates on every update.</li>
141
  </ul>
142
 
143
  <p>Need functionality not already available in core or the add-ons? You can <a href="http://www.wprssaggregator.com/feature-requests/">suggest new features</a>!</p>
includes/feed-display.php CHANGED
@@ -106,7 +106,7 @@
106
 
107
  if ( isset($settings['pagination']) ) {
108
  $pagination = strtolower( $settings['pagination'] );
109
- if ( in_array($pagination, array('false','off','0',0)) ) {
110
  unset( $feed_items_args['paged'] );
111
  }
112
  }
@@ -278,12 +278,30 @@
278
  *
279
  * @since 3.5
280
  */
281
- function wprss_pagination_links( $output ) {
282
- $output .= '<div class="nav-links">';
283
- $output .= ' <div class="nav-previous alignleft">' . get_next_posts_link( 'Older posts' ) . '</div>';
284
- $output .= ' <div class="nav-next alignright">' . get_previous_posts_link( 'Newer posts' ) . '</div>';
285
- $output .= '</div>';
286
- return $output;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
287
  }
288
 
289
 
106
 
107
  if ( isset($settings['pagination']) ) {
108
  $pagination = strtolower( $settings['pagination'] );
109
+ if ( in_array( $pagination, array('false','off','0') ) ) {
110
  unset( $feed_items_args['paged'] );
111
  }
112
  }
278
  *
279
  * @since 3.5
280
  */
281
+ function wprss_pagination_links( $output ) {
282
+ // Get the general setting
283
+ $pagination = wprss_get_general_setting( 'pagination' );;
284
+
285
+ // Check the pagination setting, if using page numbers
286
+ if ( $pagination === 'numbered' ) {
287
+ global $wp_query;
288
+ $big = 999999999; // need an unlikely integer
289
+ $output .= paginate_links( array(
290
+ 'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
291
+ 'format' => '?paged=%#%',
292
+ 'current' => max( 1, get_query_var('paged') ),
293
+ 'total' => $wp_query->max_num_pages
294
+ ) );
295
+ return $output;
296
+ }
297
+ // Otherwise, using default paginations
298
+ else {
299
+ $output .= '<div class="nav-links">';
300
+ $output .= ' <div class="nav-previous alignleft">' . get_next_posts_link( 'Older posts' ) . '</div>';
301
+ $output .= ' <div class="nav-next alignright">' . get_previous_posts_link( 'Newer posts' ) . '</div>';
302
+ $output .= '</div>';
303
+ return $output;
304
+ }
305
  }
306
 
307
 
includes/feed-importing.php CHANGED
@@ -6,6 +6,13 @@
6
  */
7
 
8
 
 
 
 
 
 
 
 
9
 
10
  add_action( 'wprss_fetch_single_feed_hook', 'wprss_fetch_insert_single_feed_items' );
11
  /**
@@ -100,6 +107,12 @@
100
  wprss_log("The feed URL is not valid! Please recheck.");
101
  }
102
 
 
 
 
 
 
 
103
  delete_post_meta( $feed_ID, 'wprss_feed_is_updating' );
104
  }
105
 
@@ -212,41 +225,75 @@
212
  *
213
  * @param $permalink The permalink to normalize
214
  * @return string The normalized permalink
 
215
  */
216
  function wprss_normalize_permalink( $permalink ) {
217
  // Apply normalization functions on the permalink
218
  $permalink = trim( $permalink );
219
- $permalink = wprss_google_news_url_fix( $permalink );
220
- $permalink = wprss_convert_video_permalink( $permalink );
221
  // Return the normalized permalink
222
  return $permalink;
223
  }
224
-
225
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
226
 
227
  /**
228
- * Checks if the permalink is a Google News permalink, and if it is,
229
- * returns the normalized URL of the proper feed item article.
230
- *
231
- * Fixes the issue with equivalent Google News items having different URLs,
232
- * that contain randomly generated GET parameters. Example:
233
  *
 
 
 
 
234
  * http://news.google.com/news/url?sa=t&fd=R&ct2=us&ei=V3e9U6izMMnm1QaB1YHoDA&url=http://abcd...
235
  * http://news.google.com/news/url?sa=t&fd=R&ct2=us&ei=One9U-HQLsTp1Aal-oDQBQ&url=http://abcd...
236
  *
237
- * @param $permalink The permalink URL to check and/or normalize.
 
 
238
  * @return string The normalized URL of the original article, as indicated by the `url`
239
  * parameter in the URL query string.
 
240
  */
241
- function wprss_google_news_url_fix( $permalink ) {
242
  // Parse the url
243
  $parsed = parse_url( urldecode( html_entity_decode( $permalink ) ) );
 
244
 
245
  // If parsing failed, return the permalink
246
  if ( $parsed === FALSE || $parsed === NULL ) return $permalink;
247
 
248
- // Determine if it's a google news item
249
- if ( strtolower( $parsed['host'] ) !== 'news.google.com' ) return $permalink;
 
 
 
 
 
 
 
 
 
250
  // Check if the url GET query string is present
251
  if ( !isset( $parsed['query'] ) ) return $permalink;
252
 
@@ -255,13 +302,13 @@
255
  parse_str( $parsed['query'], $query );
256
 
257
  // Check if the url GET parameter is present in the query string
258
- if ( !is_array($query) || !isset( $query['url'] ) ) return $permalink;
259
 
260
- return urldecode( $query['url'] );
261
  }
262
 
263
 
264
-
265
  /**
266
  * Converts YouTube, Vimeo and DailyMotion video urls
267
  * into embedded video player urls.
6
  */
7
 
8
 
9
+ // Warning: Order may be important
10
+ add_filter('wprss_normalize_permalink', 'wprss_google_news_url_fix', 8);
11
+ add_filter('wprss_normalize_permalink', 'wprss_bing_news_url_fix', 9);
12
+ add_filter('wprss_normalize_permalink', 'wprss_convert_video_permalink', 100);
13
+
14
+
15
+
16
 
17
  add_action( 'wprss_fetch_single_feed_hook', 'wprss_fetch_insert_single_feed_items' );
18
  /**
107
  wprss_log("The feed URL is not valid! Please recheck.");
108
  }
109
 
110
+ $next_scheduled = get_post_meta( $feed_ID, 'wprss_reschedule_event', TRUE );
111
+ if ( $next_scheduled !== '' ) {
112
+ wprss_feed_source_update_start_schedule( $feed_ID );
113
+ delete_post_meta( $feed_ID, 'wprss_reschedule_event' );
114
+ }
115
+
116
  delete_post_meta( $feed_ID, 'wprss_feed_is_updating' );
117
  }
118
 
225
  *
226
  * @param $permalink The permalink to normalize
227
  * @return string The normalized permalink
228
+ * @since 4.2.3
229
  */
230
  function wprss_normalize_permalink( $permalink ) {
231
  // Apply normalization functions on the permalink
232
  $permalink = trim( $permalink );
233
+ $permalink = apply_filters( 'wprss_normalize_permalink', $permalink );
 
234
  // Return the normalized permalink
235
  return $permalink;
236
  }
237
+
238
+
239
+ /**
240
+ * Extracts the actual URL from a Google News permalink
241
+ *
242
+ * @param string $permalink The permalink to normalize.
243
+ * @since 4.2.3
244
+ */
245
+ function wprss_google_news_url_fix($permalink) {
246
+ return wprss_tracking_url_fix($permalink, '!^(https?:\/\/)?' . preg_quote('news.google.com', '!') . '.*!');
247
+ }
248
+
249
+ /**
250
+ * Extracts the actual URL from a Bing permalink
251
+ *
252
+ * @param string $permalink The permalink to normalize.
253
+ * @since 4.2.3
254
+ */
255
+ function wprss_bing_news_url_fix($permalink) {
256
+ return wprss_tracking_url_fix($permalink, '!^(https?:\/\/)?(www\.)?' . preg_quote('bing.com/news', '!') . '.*!');
257
+ }
258
 
259
  /**
260
+ * Checks if the permalink is a tracking permalink based on host, and if
261
+ * it is, returns the normalized URL of the proper feed item article,
262
+ * determined by the named query argument.
 
 
263
  *
264
+ * Fixes the issue with equivalent Google News etc. items having
265
+ * different URLs, that contain randomly generated GET parameters.
266
+ * Example:
267
+ *
268
  * http://news.google.com/news/url?sa=t&fd=R&ct2=us&ei=V3e9U6izMMnm1QaB1YHoDA&url=http://abcd...
269
  * http://news.google.com/news/url?sa=t&fd=R&ct2=us&ei=One9U-HQLsTp1Aal-oDQBQ&url=http://abcd...
270
  *
271
+ * @param string $permalink The permalink URL to check and/or normalize.
272
+ * @param string|array $patterns One or an array of host names, for which the URL should be fixed.
273
+ * @param string Name of the query argument that specifies the actual URL.
274
  * @return string The normalized URL of the original article, as indicated by the `url`
275
  * parameter in the URL query string.
276
+ * @since 4.2.3
277
  */
278
+ function wprss_tracking_url_fix( $permalink, $patterns, $argName = 'url' ) {
279
  // Parse the url
280
  $parsed = parse_url( urldecode( html_entity_decode( $permalink ) ) );
281
+ $patterns = is_array($patterns) ? $patterns :array($patterns);
282
 
283
  // If parsing failed, return the permalink
284
  if ( $parsed === FALSE || $parsed === NULL ) return $permalink;
285
 
286
+ // Determine if it's a tracking item
287
+ $isMatch = false;
288
+ foreach( $patterns as $_idx => $_pattern ) {
289
+ if( preg_match($_pattern, $permalink) ) {
290
+ $isMatch = true;
291
+ break;
292
+ }
293
+ }
294
+
295
+ if( !$isMatch ) return $permalink;
296
+
297
  // Check if the url GET query string is present
298
  if ( !isset( $parsed['query'] ) ) return $permalink;
299
 
302
  parse_str( $parsed['query'], $query );
303
 
304
  // Check if the url GET parameter is present in the query string
305
+ if ( !is_array($query) || !isset( $query[$argName] ) ) return $permalink;
306
 
307
+ return urldecode( $query[$argName] );
308
  }
309
 
310
 
311
+
312
  /**
313
  * Converts YouTube, Vimeo and DailyMotion video urls
314
  * into embedded video player urls.
includes/system-info.php CHANGED
@@ -76,7 +76,7 @@ ACTIVE PLUGINS:
76
  <?php
77
  $plugins = get_plugins();
78
  $active_plugins = get_option( 'active_plugins', array() );
79
-
80
  foreach ( $plugins as $plugin_path => $plugin ):
81
  // If the plugin isn't active, don't show it.
82
  if ( ! in_array( $plugin_path, $active_plugins ) ) {
@@ -164,4 +164,4 @@ if ( get_bloginfo( 'version' ) < '3.4' ) {
164
  echo wp_strip_all_tags( $_POST['wprss-sysinfo'] );
165
  exit;
166
  }
167
- add_action( 'wprss_download_sysinfo', 'wprss_generate_sysinfo_download' );
76
  <?php
77
  $plugins = get_plugins();
78
  $active_plugins = get_option( 'active_plugins', array() );
79
+ $inactive_plugins = array();
80
  foreach ( $plugins as $plugin_path => $plugin ):
81
  // If the plugin isn't active, don't show it.
82
  if ( ! in_array( $plugin_path, $active_plugins ) ) {
164
  echo wp_strip_all_tags( $_POST['wprss-sysinfo'] );
165
  exit;
166
  }
167
+ add_action( 'wprss_download_sysinfo', 'wprss_generate_sysinfo_download' );
includes/update.php CHANGED
@@ -233,6 +233,9 @@
233
 
234
  // from version 4.1.2
235
  'custom_feed_title' => 'Latest imported feed items on ' . get_bloginfo('name'),
 
 
 
236
  )
237
  );
238
 
233
 
234
  // from version 4.1.2
235
  'custom_feed_title' => 'Latest imported feed items on ' . get_bloginfo('name'),
236
+
237
+ // From version 4.2.3
238
+ 'pagination' => 'default',
239
  )
240
  );
241
 
readme.txt CHANGED
@@ -5,7 +5,7 @@ Plugin URI: http://www.wprssaggregator.com
5
  Tags: rss, feeds, aggregation, rss to post, autoblog aggregator, rss import, feed aggregator, rss aggregator, multiple rss feeds, multi rss feeds, rss multi importer, feed import, feed import, multiple feed import, feed aggregation, rss feader, feed reader, feed to post, multiple feeds, multi feed importer, multi feed import, multi import, autoblogging, autoblogger
6
  Requires at least: 3.3
7
  Tested up to: 3.9.1
8
- Stable tag: 4.2.2
9
  License: GPLv2 or later
10
  Imports and aggregates multiple RSS Feeds using SimplePie. Outputs feeds sorted by date (latest first).
11
 
@@ -163,6 +163,14 @@ The full documentation section can be found on the [WP RSS Aggregator website](w
163
 
164
  == Changelog ==
165
 
 
 
 
 
 
 
 
 
166
  = 4.2.2 (2014-07-23) =
167
  * Enhanced: Facebook page feeds are now changed into RSS 2.0 feeds, rather than Atom 1.0 feeds.
168
  * Enhanced: Improved live updating performace on the Feed Sources page.
5
  Tags: rss, feeds, aggregation, rss to post, autoblog aggregator, rss import, feed aggregator, rss aggregator, multiple rss feeds, multi rss feeds, rss multi importer, feed import, feed import, multiple feed import, feed aggregation, rss feader, feed reader, feed to post, multiple feeds, multi feed importer, multi feed import, multi import, autoblogging, autoblogger
6
  Requires at least: 3.3
7
  Tested up to: 3.9.1
8
+ Stable tag: 4.2.3
9
  License: GPLv2 or later
10
  Imports and aggregates multiple RSS Feeds using SimplePie. Outputs feeds sorted by date (latest first).
11
 
163
 
164
  == Changelog ==
165
 
166
+ = 4.2.3 (2014-07-29) =
167
+ * Enhanced: Added an option to choose between the current pagination type, and numbered pagination.
168
+ * Enhanced: The Feed Preview now also shows the total number of items in the feed.
169
+ * Fixed bug: A PHP warning error was being shown in the System Info.
170
+ * Fixed bug: Language files were not always being referenced correctly.
171
+ * Fixed bug: Manually fetching a feed fails if the feed is scheduled to update in the next 10 minutes.
172
+ * Fixed bug: Bing RSS feeds were importing duplicates on every update.
173
+
174
  = 4.2.2 (2014-07-23) =
175
  * Enhanced: Facebook page feeds are now changed into RSS 2.0 feeds, rather than Atom 1.0 feeds.
176
  * Enhanced: Improved live updating performace on the Feed Sources page.
wp-rss-aggregator.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: WP RSS Aggregator
4
  Plugin URI: http://www.wprssaggregator.com
5
  Description: Imports and aggregates multiple RSS Feeds using SimplePie
6
- Version: 4.2.2
7
  Author: Jean Galea
8
  Author URI: http://www.wprssaggregator.com
9
  License: GPLv2
@@ -29,7 +29,7 @@
29
 
30
  /**
31
  * @package WPRSSAggregator
32
- * @version 4.2.2
33
  * @since 1.0
34
  * @author Jean Galea <info@jeangalea.com>
35
  * @copyright Copyright (c) 2012-2014, Jean Galea
@@ -43,7 +43,7 @@
43
 
44
  // Set the version number of the plugin.
45
  if( !defined( 'WPRSS_VERSION' ) )
46
- define( 'WPRSS_VERSION', '4.2.2', true );
47
 
48
  // Set the database version number of the plugin.
49
  if( !defined( 'WPRSS_DB_VERSION' ) )
@@ -81,6 +81,9 @@
81
  if( !defined( 'WPRSS_INC' ) )
82
  define( 'WPRSS_INC', WPRSS_DIR . trailingslashit( 'includes' ), true );
83
 
 
 
 
84
  // Set the constant path to the plugin's log file.
85
  if( !defined( 'WPRSS_LOG_FILE' ) )
86
  define( 'WPRSS_LOG_FILE', WPRSS_DIR . 'log', true );
@@ -397,7 +400,7 @@
397
  * @return void
398
  */
399
  function wprss_load_textdomain() {
400
- load_plugin_textdomain( 'wprss', false, plugin_dir_path( __FILE__ ) . '/languages/' );
401
  }
402
 
403
 
3
  Plugin Name: WP RSS Aggregator
4
  Plugin URI: http://www.wprssaggregator.com
5
  Description: Imports and aggregates multiple RSS Feeds using SimplePie
6
+ Version: 4.2.3
7
  Author: Jean Galea
8
  Author URI: http://www.wprssaggregator.com
9
  License: GPLv2
29
 
30
  /**
31
  * @package WPRSSAggregator
32
+ * @version 4.2.3
33
  * @since 1.0
34
  * @author Jean Galea <info@jeangalea.com>
35
  * @copyright Copyright (c) 2012-2014, Jean Galea
43
 
44
  // Set the version number of the plugin.
45
  if( !defined( 'WPRSS_VERSION' ) )
46
+ define( 'WPRSS_VERSION', '4.2.3', true );
47
 
48
  // Set the database version number of the plugin.
49
  if( !defined( 'WPRSS_DB_VERSION' ) )
81
  if( !defined( 'WPRSS_INC' ) )
82
  define( 'WPRSS_INC', WPRSS_DIR . trailingslashit( 'includes' ), true );
83
 
84
+ if( !defined( 'WPRSS_LANG' ) )
85
+ define( 'WPRSS_LANG', WPRSS_DIR . trailingslashit( 'languages' ), true );
86
+
87
  // Set the constant path to the plugin's log file.
88
  if( !defined( 'WPRSS_LOG_FILE' ) )
89
  define( 'WPRSS_LOG_FILE', WPRSS_DIR . 'log', true );
400
  * @return void
401
  */
402
  function wprss_load_textdomain() {
403
+ load_plugin_textdomain( 'wprss', false, WPRSS_LANG );
404
  }
405
 
406