Selaa lähdekoodia

Fix MyAnimeList status change not taken into account

Penta 5 vuotta sitten
vanhempi
sitoutus
751538474f
2 muutettua tiedostoa jossa 3 lisäystä ja 1 poistoa
  1. 1 0
      extra/myanimebot-init.sql
  2. 2 1
      myanimebot.py

+ 1 - 0
extra/myanimebot-init.sql

@@ -501,6 +501,7 @@ CREATE TABLE IF NOT EXISTS `t_feeds` (
   `user` tinytext DEFAULT NULL,
   `found` datetime NOT NULL DEFAULT current_timestamp(),
   `type` tinytext DEFAULT 'N/A',
+  `obsolete` tinyint UNSIGNED NOT NULL DEFAULT 0,
   PRIMARY KEY (`id`),
   KEY `idx_user` (`user`(255)),
   KEY `idx_title` (`title`(768)),

+ 2 - 1
myanimebot.py

@@ -98,7 +98,7 @@ async def background_check_feed(asyncioloop):
 						feed = myanimelist.build_feed_from_data(feed_data, user, None, pubDateRaw.timestamp(), media_type)
 						
 						cursor = globals.conn.cursor(buffered=True)
-						cursor.execute("SELECT published, title, url FROM t_feeds WHERE published=%s AND title=%s AND user=%s", [pubDate, feed.media.name, user.name])
+						cursor.execute("SELECT published, title, url, type FROM t_feeds WHERE published=%s AND title=%s AND user=%s AND type=%s AND obsolete=0", [pubDate, feed.media.name, user.name, feed.get_status_str()])
 						data = cursor.fetchone()
 
 						if data is None:
@@ -126,6 +126,7 @@ async def background_check_feed(asyncioloop):
 								else: image = data_img[0]
 								feed.media.image = image
 
+								cursor.execute("UPDATE t_feeds SET obsolete=1 WHERE published=%s AND title=%s AND user=%s", [pubDate, feed.media.name, user.name])
 								cursor.execute("INSERT INTO t_feeds (published, title, url, user, found, type) VALUES (%s, %s, %s, %s, NOW(), %s)", (pubDate, feed.media.name, feed.media.url, user.name, feed.get_status_str()))
 								globals.conn.commit()