Private GIT
Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
SickRage
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
vlbox
SickRage
Commits
998d26c9
Commit
998d26c9
authored
Jun 21, 2015
by
Dustyn Gibson
Browse files
Options
Downloads
Patches
Plain Diff
Change propers code for newznab, hopefully fixes it
parent
caa04a30
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
sickbeard/providers/newznab.py
+36
-63
36 additions, 63 deletions
sickbeard/providers/newznab.py
with
36 additions
and
63 deletions
sickbeard/providers/newznab.py
+
36
−
63
View file @
998d26c9
...
@@ -23,17 +23,18 @@ import os
...
@@ -23,17 +23,18 @@ import os
import
sickbeard
import
sickbeard
import
generic
import
generic
from
sickbeard.common
import
Quality
from
sickbeard
import
classes
from
sickbeard
import
classes
from
sickbeard
import
helpers
from
sickbeard
import
helpers
from
sickbeard
import
scene_exceptions
from
sickbeard
import
scene_exceptions
from
sickbeard
import
encodingKludge
as
ek
from
sickbeard
import
encodingKludge
as
ek
from
sickbeard
import
logger
from
sickbeard
import
logger
from
sickbeard
import
tvcache
from
sickbeard
import
tvcache
from
sickbeard
import
db
from
sickbeard.exceptions
import
AuthException
from
sickbeard.exceptions
import
AuthException
class
NewznabProvider
(
generic
.
NZBProvider
):
class
NewznabProvider
(
generic
.
NZBProvider
):
def
__init__
(
self
,
name
,
url
,
key
=
''
,
catIDs
=
'
5030,5040
'
,
search_mode
=
'
eponly
'
,
search_fallback
=
False
,
def
__init__
(
self
,
name
,
url
,
key
=
'
0
'
,
catIDs
=
'
5030,5040
'
,
search_mode
=
'
eponly
'
,
search_fallback
=
False
,
enable_daily
=
False
,
enable_backlog
=
False
):
enable_daily
=
False
,
enable_backlog
=
False
):
generic
.
NZBProvider
.
__init__
(
self
,
name
)
generic
.
NZBProvider
.
__init__
(
self
,
name
)
...
@@ -66,6 +67,7 @@ class NewznabProvider(generic.NZBProvider):
...
@@ -66,6 +67,7 @@ class NewznabProvider(generic.NZBProvider):
self
.
supportsBacklog
=
True
self
.
supportsBacklog
=
True
self
.
default
=
False
self
.
default
=
False
self
.
last_search
=
datetime
.
datetime
.
now
()
def
configStr
(
self
):
def
configStr
(
self
):
return
self
.
name
+
'
|
'
+
self
.
url
+
'
|
'
+
self
.
key
+
'
|
'
+
self
.
catIDs
+
'
|
'
+
str
(
return
self
.
name
+
'
|
'
+
self
.
url
+
'
|
'
+
self
.
key
+
'
|
'
+
self
.
catIDs
+
'
|
'
+
str
(
...
@@ -184,7 +186,7 @@ class NewznabProvider(generic.NZBProvider):
...
@@ -184,7 +186,7 @@ class NewznabProvider(generic.NZBProvider):
name_exceptions
=
list
(
name_exceptions
=
list
(
set
(
scene_exceptions
.
get_scene_exceptions
(
ep_obj
.
show
.
indexerid
)
+
[
ep_obj
.
show
.
name
]))
set
(
scene_exceptions
.
get_scene_exceptions
(
ep_obj
.
show
.
indexerid
)
+
[
ep_obj
.
show
.
name
]))
for
cur_exception
in
name_exceptions
:
for
cur_exception
in
name_exceptions
:
params
[
'
q
'
]
=
helpers
.
sanitizeSceneName
(
cur_exception
)
params
[
'
q
'
]
=
helpers
.
sanitizeSceneName
(
cur_exception
)
+
'
'
+
add_string
to_return
.
append
(
params
)
to_return
.
append
(
params
)
if
ep_obj
.
show
.
anime
:
if
ep_obj
.
show
.
anime
:
...
@@ -192,7 +194,8 @@ class NewznabProvider(generic.NZBProvider):
...
@@ -192,7 +194,8 @@ class NewznabProvider(generic.NZBProvider):
# Remove the ?ep=e46 paramater and use add the episode number to the query paramater.
# Remove the ?ep=e46 paramater and use add the episode number to the query paramater.
# Can be usefull for newznab indexers that do not have the episodes 100% parsed.
# Can be usefull for newznab indexers that do not have the episodes 100% parsed.
# Start with only applying the searchstring to anime shows
# Start with only applying the searchstring to anime shows
params
[
'
q
'
]
=
helpers
.
sanitizeSceneName
(
cur_exception
)
params
[
'
q
'
]
=
helpers
.
sanitizeSceneName
(
cur_exception
)
+
'
'
+
add_string
params
[
'
s
'
]
=
params
[
'
q
'
]
paramsNoEp
=
params
.
copy
()
paramsNoEp
=
params
.
copy
()
paramsNoEp
[
'
q
'
]
=
paramsNoEp
[
'
q
'
]
+
"
"
+
str
(
paramsNoEp
[
'
ep
'
])
paramsNoEp
[
'
q
'
]
=
paramsNoEp
[
'
q
'
]
+
"
"
+
str
(
paramsNoEp
[
'
ep
'
])
...
@@ -275,7 +278,12 @@ class NewznabProvider(generic.NZBProvider):
...
@@ -275,7 +278,12 @@ class NewznabProvider(generic.NZBProvider):
search_url
=
self
.
url
+
'
api?
'
+
urllib
.
urlencode
(
params
)
search_url
=
self
.
url
+
'
api?
'
+
urllib
.
urlencode
(
params
)
logger
.
log
(
u
"
Search url:
"
+
search_url
,
logger
.
DEBUG
)
logger
.
log
(
u
"
Search url:
"
+
search_url
,
logger
.
DEBUG
)
while
((
datetime
.
datetime
.
now
()
-
self
.
last_search
).
seconds
<
5
):
time
.
sleep
(
1
)
data
=
self
.
cache
.
getRSSFeed
(
search_url
)
data
=
self
.
cache
.
getRSSFeed
(
search_url
)
#print data
self
.
last_search
=
datetime
.
datetime
.
now
()
if
not
self
.
_checkAuthFromData
(
data
):
if
not
self
.
_checkAuthFromData
(
data
):
break
break
...
@@ -316,68 +324,33 @@ class NewznabProvider(generic.NZBProvider):
...
@@ -316,68 +324,33 @@ class NewznabProvider(generic.NZBProvider):
logger
.
log
(
u
'
No more searches needed.
'
,
logger
.
DEBUG
)
logger
.
log
(
u
'
No more searches needed.
'
,
logger
.
DEBUG
)
break
break
time
.
sleep
(
0.2
)
return
results
return
results
def
findPropers
(
self
,
search_date
=
None
):
def
findPropers
(
self
,
search_date
=
datetime
.
datetime
.
today
()):
results
=
[]
search_terms
=
[
'
.proper.
'
,
'
.repack.
'
]
cache_results
=
self
.
cache
.
listPropers
(
search_date
)
results
=
[
classes
.
Proper
(
x
[
'
name
'
],
x
[
'
url
'
],
datetime
.
datetime
.
fromtimestamp
(
x
[
'
time
'
]),
self
.
show
)
for
x
in
cache_results
]
index
=
0
alt_search
=
(
'
nzbs_org
'
==
self
.
getID
())
term_items_found
=
False
do_search_alt
=
False
while
index
<
len
(
search_terms
):
search_params
=
{
'
q
'
:
search_terms
[
index
]}
if
alt_search
:
if
do_search_alt
:
index
+=
1
if
term_items_found
:
do_search_alt
=
True
term_items_found
=
False
else
:
if
do_search_alt
:
search_params
[
'
t
'
]
=
"
search
"
do_search_alt
=
(
True
,
False
)[
do_search_alt
]
else
:
index
+=
1
for
item
in
self
.
_doSearch
(
search_params
,
age
=
4
):
(
title
,
url
)
=
self
.
_get_title_and_url
(
item
)
try
:
myDB
=
db
.
DBConnection
()
result_date
=
datetime
.
datetime
(
*
item
[
'
published_parsed
'
][
0
:
6
])
sqlResults
=
myDB
.
select
(
except
(
AttributeError
,
KeyError
):
'
SELECT s.show_name, e.showid, e.season, e.episode, e.status, e.airdate FROM tv_episodes AS e
'
+
try
:
'
INNER JOIN tv_shows AS s ON (e.showid = s.indexer_id)
'
+
result_
date
=
datetime
.
datetime
(
*
item
[
'
updated_parsed
'
][
0
:
6
])
'
WHERE e.air
date
>
=
'
+
str
(
search_date
.
toordinal
())
+
except
(
AttributeError
,
KeyError
):
'
AND (e.status IN (
'
+
'
,
'
.
join
([
str
(
x
)
for
x
in
Quality
.
DOWNLOADED
])
+
'
)
'
+
try
:
'
OR (e.status IN (
'
+
'
,
'
.
join
([
str
(
x
)
for
x
in
Quality
.
SNATCHED
])
+
'
)))
'
result_date
=
datetime
.
datetime
(
*
item
[
'
created_parsed
'
][
0
:
6
]
)
)
except
(
AttributeError
,
KeyError
):
try
:
if
not
sqlResults
:
result_date
=
datetime
.
datetime
(
*
item
[
'
date
'
][
0
:
6
])
return
[]
except
(
AttributeError
,
KeyError
):
logger
.
log
(
u
"
Unable to figure out the date for entry
"
+
title
+
"
, skipping it
"
)
for
sqlshow
in
sqlResults
:
continue
self
.
show
=
helpers
.
findCertainShow
(
sickbeard
.
showList
,
int
(
sqlshow
[
"
showid
"
]))
if
self
.
show
:
if
not
search_date
or
result_date
>
search_date
:
curEp
=
self
.
show
.
getEpisode
(
int
(
sqlshow
[
"
season
"
]),
int
(
sqlshow
[
"
episode
"
]))
search
_result
=
classes
.
Proper
(
title
,
url
,
result_date
,
self
.
show
)
search
Strings
=
self
.
_get_episode_search_strings
(
curEp
,
add_string
=
'
PROPER|REPACK
'
)
results
.
append
(
search_result
)
for
searchString
in
searchStrings
:
term_items_found
=
True
for
item
in
self
.
_doSearch
(
searchString
):
do_search_alt
=
False
title
,
url
=
self
.
_get_title_and_url
(
item
)
if
(
re
.
match
(
r
'
.*(REPACK|PROPER).*
'
,
title
,
re
.
I
)):
time
.
sleep
(
0.2
)
results
.
append
(
classes
.
Proper
(
title
,
url
,
datetime
.
datetime
.
today
(),
self
.
show
)
)
return
results
return
results
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment