RSS feeds with old content reposted

Get help with all aspects of SABnzbd
Forum rules
Help us help you:
  • Are you using the latest stable version of SABnzbd? Downloads page.
  • Tell us what system you run SABnzbd on.
  • Adhere to the forum rules.
  • Do you experience problems during downloading?
    Check your connection in Status and Interface settings window.
    Use Test Server in Config > Servers.
    We will probably ask you to do a test using only basic settings.
  • Do you experience problems during repair or unpacking?
    Enable +Debug logging in the Status and Interface settings window and share the relevant parts of the log here using [ code ] sections.
Post Reply
uradox
Newbie
Newbie
Posts: 1
Joined: January 16th, 2009, 11:05 pm

RSS feeds with old content reposted

Post by uradox »

Hi,
I am quite new to all this automated nzb stuff and have been quite impressed. Had a problem overnight where I downloaded 21gb of old tv episodes but I think thats my fault.
I use some RSS feeds from newzbin where I have done all the filtering etc..
I have a concern however with TV episodes. What happens if someone reposts a old episode? It passes my filter and I am not sure how I can stop this from downloading. I have the episode in question as I got it via another method. Is there anything in place I can use to prevent a double up from occuring?
User avatar
shypike
Administrator
Administrator
Posts: 19774
Joined: January 18th, 2008, 12:49 pm

Re: RSS feeds with old content reposted

Post by shypike »

Only if the report titles are 100% identical.
The RSS feature already checks this and you can also let SABnzbd use
the NZB backup folder for an extra check.

If someone decides to upload an old show under a slightly different name
your are out of luck.
Making SABnzbd guess at equality is not feasible.
RonnieG
Newbie
Newbie
Posts: 11
Joined: April 25th, 2010, 3:28 pm

Re: RSS feeds with old content reposted

Post by RonnieG »

So, bringing this post back from the dead to see if it can be re-addressed. Below is a BASH script that parses filenames and has been thoroughly tested for detecting season and episode numbers. Could this code be ported into sabnzbd, and included as an optional filter for RSS via a checkbox? It would probably be best if the option was on each individual feed, vs globally applied to all.

It leaves SEASON and EPISODE variables in the format of 01-NN. If we could somehow store these with the RSS feed identifier, we could track which episodes were already received. Btw, I'm a seasoned developer, happy to help out in implementing this.

Thoughts?

Thanks!

Code: Select all

	# TV path formats supported. Filenames will be searched in
	# this order, and case insensitively.
	#	*/<title>.s##e##.*
	#	*/<title> - ##x##.*
	#	*/<title> - s##e##.*
	#	*/<title> - s##e##_*
	#	*/<title> - s##e## *
	#	*/<title>_s##e##_*
	#	*/<title>.s##e#.*
	#	*/<title>_s##e#_*
	#	*/<title>.s#e##.*
	#	*/<title>_s#e##_*
	#	*/<title>.s#e#.*
	#	*/<title>_s#e#_*
	#	*/<title>.s##.e##.*
	#	*/<title>_s##_e##_*
	#	*/<title>.s##.e#.*
	#	*/<title>_s##_e#_*
	#	*/<title>.s#.e##.*
	#	*/<title>_s#_e##_*
	#	*/<title>.s#.e#.*
	#	*/<title>_s#_e#_*
	#	*/<title>.###.*
	#	*/<title>_###_*
	#	*/<title>.####.*
	#	*/<title>_####_*
	#	*/<title>.##.##.*
	#	*/<title>_##_##_*
	#	*/<title>.##x##.*
	#	*/<title>_##x##_*
	#	*/<title>.#x##.*
	#	*/<title>_#x##_*
	#	*/<title>.##x#.*
	#	*/<title>_##x#_*
	#	*/<title>.#x#.*
	#	*/<title>_#x#_*

	TITLE="";
	SEASON="";
	EPISODE="";
	FILEPATH=`echo "$1" |sed 's/%20/ /g'`
	FILENAME=${FILEPATH##*/}
	NOTFOUND=true
	# Time to find the season and episode numbers
	# *.s##e##.*
	if $NOTFOUND; then
		if [[ "$FILENAME" =~ [\.\_][sS][0-9][0-9][eE][0-9][0-9][\.\_] ]]; then
			TITLE=`echo "${FILENAME%${BASH_REMATCH[0]}*}" |sed 's/[\.\_]/ /g'`
			[[ "$FILENAME" =~ [sS][0-9][0-9] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9][0-9] ]]
			SEASON="${BASH_REMATCH[0]}"
			[[ "$FILENAME" =~ [eE][0-9][0-9] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9][0-9] ]]
			EPISODE="${BASH_REMATCH[0]}"
			NOTFOUND=false;
		fi;
	fi;
	# * - ##x##.*
	if $NOTFOUND; then
		if [[ "$FILENAME" =~ [\ ][\-][\ ][0-9][0-9][xX][0-9][0-9][\.\_\ ] ]]; then
			TITLE=`echo "${FILENAME%${BASH_REMATCH[0]}*}" |sed 's/[\.\_]/ /g'`
			[[ "$FILENAME" =~ [0-9][0-9][xX] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9][0-9] ]]
			SEASON="${BASH_REMATCH[0]}"
			[[ "$FILENAME" =~ [xX][0-9][0-9] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9][0-9] ]]
			EPISODE="${BASH_REMATCH[0]}"
			NOTFOUND=false;
		fi;
	fi;
	# * - s##e##.*
	if $NOTFOUND; then
		if [[ "$FILENAME" =~ [\ ][\-][\ ][sS][0-9][0-9][eE][0-9][0-9][\.\_\ ] ]]; then
			TITLE=`echo "${FILENAME%${BASH_REMATCH[0]}*}" |sed 's/[\.\_]/ /g'`
			[[ "$FILENAME" =~ [sS][0-9][0-9] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9][0-9] ]]
			SEASON="${BASH_REMATCH[0]}"
			[[ "$FILENAME" =~ [eE][0-9][0-9] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9][0-9] ]]
			EPISODE="${BASH_REMATCH[0]}"
			NOTFOUND=false;
		fi;
	fi;
	# *.s##e#.*
	if $NOTFOUND; then
		if [[ "$FILENAME" =~ [\.\_][sS][0-9][0-9][eE][0-9][\.\_] ]]; then
			TITLE=`echo "${FILENAME%${BASH_REMATCH[0]}*}" |sed 's/[\.\_]/ /g'`
			[[ "$FILENAME" =~ [sS][0-9][0-9] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9][0-9] ]]
			SEASON="${BASH_REMATCH[0]}"
			[[ "$FILENAME" =~ [eE][0-9] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9] ]]
			EPISODE="0${BASH_REMATCH[0]}"
			NOTFOUND=false;
		fi;
	fi;
	# *.s#e##.*
	if $NOTFOUND; then
		if [[ "$FILENAME" =~ [\.\_][sS][0-9][eE][0-9][0-9][\.\_] ]]; then
			TITLE=`echo "${FILENAME%${BASH_REMATCH[0]}*}" |sed 's/[\.\_]/ /g'`
			[[ "$FILENAME" =~ [sS][0-9] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9] ]]
			SEASON="0${BASH_REMATCH[0]}"
			[[ "$FILENAME" =~ [eE][0-9][0-9] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9][0-9] ]]
			EPISODE="${BASH_REMATCH[0]}"
			NOTFOUND=false;
		fi;
	fi;
	# *.s#e#.*
	if $NOTFOUND; then
		if [[ "$FILENAME" =~ [\.\_][sS][0-9][eE][0-9][\.\_] ]]; then
			TITLE=`echo "${FILENAME%${BASH_REMATCH[0]}*}" |sed 's/[\.\_]/ /g'`
			[[ "$FILENAME" =~ [sS][0-9] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9] ]]
			SEASON="0${BASH_REMATCH[0]}"
			[[ "$FILENAME" =~ [eE][0-9] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9] ]]
			EPISODE="0${BASH_REMATCH[0]}"
			NOTFOUND=false;
		fi;
	fi;
	# *.s##.e##.*
	if $NOTFOUND; then
		if [[ "$FILENAME" =~ [\.\_][sS][0-9][0-9][\.\_][eE][0-9][0-9][\.\_] ]]; then
			TITLE=`echo "${FILENAME%${BASH_REMATCH[0]}*}" |sed 's/[\.\_]/ /g'`
			[[ "$FILENAME" =~ [sS][0-9][0-9] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9][0-9] ]]
			SEASON="${BASH_REMATCH[0]}"
			[[ "$FILENAME" =~ [eE][0-9][0-9] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9][0-9] ]]
			EPISODE="${BASH_REMATCH[0]}"
			NOTFOUND=false;
		fi;
	fi;
	# *.s##.e#.*
	if $NOTFOUND; then
		if [[ "$FILENAME" =~ [\.\_][sS][0-9][0-9].[eE][0-9][\.\_] ]]; then
			TITLE=`echo "${FILENAME%${BASH_REMATCH[0]}*}" |sed 's/[\.\_]/ /g'`
			[[ "$FILENAME" =~ [sS][0-9][0-9] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9][0-9] ]]
			SEASON="${BASH_REMATCH[0]}"
			[[ "$FILENAME" =~ [eE][0-9] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9] ]]
			EPISODE="0${BASH_REMATCH[0]}"
			NOTFOUND=false;
		fi;
	fi;
	# *.s#.e##.*
	if $NOTFOUND; then
		if [[ "$FILENAME" =~ [\.\_][sS][0-9][\.\_][eE][0-9][0-9][\.\_] ]]; then
			TITLE=`echo "${FILENAME%${BASH_REMATCH[0]}*}" |sed 's/[\.\_]/ /g'`
			[[ "$FILENAME" =~ [sS][0-9] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9] ]]
			SEASON="0${BASH_REMATCH[0]}"
			[[ "$FILENAME" =~ [eE][0-9][0-9] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9][0-9] ]]
			EPISODE="${BASH_REMATCH[0]}"
			NOTFOUND=false;
		fi;
	fi;
	# *.s#.e#.*
	if $NOTFOUND; then
		if [[ "$FILENAME" =~ [\.\_][sS][0-9][\.\_][eE][0-9][\.\_] ]]; then
			TITLE=`echo "${FILENAME%${BASH_REMATCH[0]}*}" |sed 's/[\.\_]/ /g'`
			[[ "$FILENAME" =~ [sS][0-9] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9] ]]
			SEASON="0${BASH_REMATCH[0]}"
			[[ "$FILENAME" =~ [eE][0-9] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9] ]]
			EPISODE="0${BASH_REMATCH[0]}"
			NOTFOUND=false;
		fi;
	fi;
	# *.###.*
	if $NOTFOUND; then
		if [[ "$FILENAME" =~ [\.\_][0-9][0-9][0-9][\.\_] ]]; then
			TITLE=`echo "${FILENAME%${BASH_REMATCH[0]}*}" |sed 's/[\.\_]/ /g'`
			[[ "$FILENAME" =~ [\.\_][0-9] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9] ]]
			SEASON="0${BASH_REMATCH[0]}"
			[[ "$FILENAME" =~ [0-9][0-9][\.\_] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9][0-9] ]]
			EPISODE="${BASH_REMATCH[0]}"
			NOTFOUND=false;
		fi;
	fi;
	# *.####.*
	if $NOTFOUND; then
		if [[ "$FILENAME" =~ [\.\_][0-9][0-9][0-9][0-9][\.\_] ]]; then
			TITLE=`echo "${FILENAME%${BASH_REMATCH[0]}*}" |sed 's/[\.\_]/ /g'`
			[[ "$FILENAME" =~ [\.\_][0-9][0-9] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9][0-9] ]]
			SEASON="${BASH_REMATCH[0]}"
			[[ "$FILENAME" =~ [0-9][0-9][\.\_] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9][0-9] ]]
			EPISODE="${BASH_REMATCH[0]}"
			NOTFOUND=false;
		fi;
	fi;
	# *.##.##.*
	if $NOTFOUND; then
		if [[ "$FILENAME" =~ [\.\_][0-9][0-9][\.\_][0-9][0-9][\.\_] ]]; then
			TITLE=`echo "${FILENAME%${BASH_REMATCH[0]}*}" |sed 's/[\.\_]/ /g'`
			[[ "$FILENAME" =~ [\.\_][0-9][0-9][\.\_][0-9] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9][0-9] ]]
			SEASON="${BASH_REMATCH[0]}"
			[[ "$FILENAME" =~ [0-9][\.\_][0-9][0-9][\.\_] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9][0-9] ]]
			EPISODE="${BASH_REMATCH[0]}"
			NOTFOUND=false;
		fi;
	fi;
	# *.##x##.*
	if $NOTFOUND; then
		if [[ "$FILENAME" =~ [\.\_][0-9][0-9][x][0-9][0-9][\.\_] ]]; then
			TITLE=`echo "${FILENAME%${BASH_REMATCH[0]}*}" |sed 's/[\.\_]/ /g'`
			[[ "$FILENAME" =~ [\.\_][0-9][0-9][x][0-9] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9][0-9] ]]
			SEASON="${BASH_REMATCH[0]}"
			[[ "$FILENAME" =~ [0-9][x][0-9][0-9][\.\_] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9][0-9] ]]
			EPISODE="${BASH_REMATCH[0]}"
			NOTFOUND=false;
		fi;
	fi;
	# *.#x##.*
	if $NOTFOUND; then
		if [[ "$FILENAME" =~ [\.\_][0-9][x][0-9][0-9][\.\_] ]]; then
			TITLE=`echo "${FILENAME%${BASH_REMATCH[0]}*}" |sed 's/[\.\_]/ /g'`
			[[ "$FILENAME" =~ [\.\_][0-9][x][0-9][0-9] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9] ]]
			SEASON="0${BASH_REMATCH[0]}"
			[[ "$FILENAME" =~ [0-9][x][0-9][0-9][\.\_] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9][0-9] ]]
			EPISODE="${BASH_REMATCH[0]}"
			NOTFOUND=false;
		fi;
	fi;
	# *.##x#.*
	if $NOTFOUND; then
		if [[ "$FILENAME" =~ [\.\_][0-9][0-9][x][0-9][\.\_] ]]; then
			TITLE=`echo "${FILENAME%${BASH_REMATCH[0]}*}" |sed 's/[\.\_]/ /g'`
			[[ "$FILENAME" =~ [\.\_][0-9][0-9][x][0-9] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9][0-9] ]]
			SEASON="${BASH_REMATCH[0]}"
			[[ "$FILENAME" =~ [x][0-9][\.\_] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9] ]]
			EPISODE="0${BASH_REMATCH[0]}"
			NOTFOUND=false;
		fi;
	fi;
	# *.#x#.*
	if $NOTFOUND; then
		if [[ "$FILENAME" =~ [\.\_][0-9][x][0-9][\.\_] ]]; then
			TITLE=`echo "${FILENAME%${BASH_REMATCH[0]}*}" |sed 's/[\.\_]/ /g'`
			[[ "$FILENAME" =~ [\.\_][0-9][x] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9] ]]
			SEASON="0${BASH_REMATCH[0]}"
			[[ "$FILENAME" =~ [x][0-9][\.\_] ]]
			[[ "${BASH_REMATCH[0]}" =~ [0-9] ]]
			EPISODE="0${BASH_REMATCH[0]}"
			NOTFOUND=false;
		fi;
	fi;
User avatar
shypike
Administrator
Administrator
Posts: 19774
Joined: January 18th, 2008, 12:49 pm

Re: RSS feeds with old content reposted

Post by shypike »

The problem is not in determining seasons and episodes, SABnzbd already does that for SeasonSort.
So far the RSS module does not use titles, seasons, episodes for remembering RSS content.
It may do so in a future release.
Other than that, we're not trying to compete with a extensive front-end like SickBeard,
which does a much better job at scouting and keeping track of series material.
RonnieG
Newbie
Newbie
Posts: 11
Joined: April 25th, 2010, 3:28 pm

Re: RSS feeds with old content reposted

Post by RonnieG »

shypike wrote:The problem is not in determining seasons and episodes, SABnzbd already does that for SeasonSort.
So far the RSS module does not use titles, seasons, episodes for remembering RSS content.
It may do so in a future release.
Other than that, we're not trying to compete with a extensive front-end like SickBeard,
which does a much better job at scouting and keeping track of series material.
Ahh, I had actually never heard of SickBeard. Thanks for pointing me in that direction.

Thanks again.
Post Reply