summaryrefslogtreecommitdiffstats
path: root/module/plugins/hoster/GamefrontCom.py
diff options
context:
space:
mode:
Diffstat (limited to 'module/plugins/hoster/GamefrontCom.py')
-rw-r--r--module/plugins/hoster/GamefrontCom.py56
1 files changed, 31 insertions, 25 deletions
diff --git a/module/plugins/hoster/GamefrontCom.py b/module/plugins/hoster/GamefrontCom.py
index 0cd54d2ea..c68866f87 100644
--- a/module/plugins/hoster/GamefrontCom.py
+++ b/module/plugins/hoster/GamefrontCom.py
@@ -1,27 +1,34 @@
# -*- coding: utf-8 -*-
import re
-from module.plugins.Hoster import Hoster
+
from module.network.RequestFactory import getURL
+from module.plugins.Hoster import Hoster
from module.utils import parseFileSize
class GamefrontCom(Hoster):
- __name__ = "GamefrontCom"
- __type__ = "hoster"
- __pattern__ = r'http://(?:www\.)?gamefront.com/files/[A-Za-z0-9]+'
+ __name__ = "GamefrontCom"
+ __type__ = "hoster"
__version__ = "0.04"
+
+ __pattern__ = r'http://(?:www\.)?gamefront\.com/files/\w+'
+
__description__ = """Gamefront.com hoster plugin"""
- __author_name__ = "fwannmacher"
- __author_mail__ = "felipe@warhammerproject.com"
+ __license__ = "GPLv3"
+ __authors__ = [("fwannmacher", "felipe@warhammerproject.com")]
+
PATTERN_FILENAME = r'<title>(.*?) | Game Front'
PATTERN_FILESIZE = r'<dt>File Size:</dt>[\n\s]*<dd>(.*?)</dd>'
- PATTERN_OFFLINE = "This file doesn't exist, or has been removed."
+ PATTERN_OFFLINE = r'This file doesn\'t exist, or has been removed.'
+
def setup(self):
- self.resumeDownload = self.multiDL = True
- self.chunkLimit = -1
+ self.resumeDownload = True
+ self.multiDL = True
+ self.chunkLimit = -1
+
def process(self, pyfile):
self.pyfile = pyfile
@@ -32,12 +39,13 @@ class GamefrontCom(Hoster):
pyfile.name = self._getName()
- self.link = self._getLink()
+ link = self._getLink()
+
+ if not link.startswith('http://'):
+ link = "http://www.gamefront.com/" + link
- if not self.link.startswith('http://'):
- self.link = "http://www.gamefront.com/" + self.link
+ self.download(link)
- self.download(self.link)
def _checkOnline(self):
if re.search(self.PATTERN_OFFLINE, self.html):
@@ -45,19 +53,19 @@ class GamefrontCom(Hoster):
else:
return True
+
def _getName(self):
name = re.search(self.PATTERN_FILENAME, self.html)
if name is None:
- self.fail("%s: Plugin broken." % self.__name__)
+ self.fail(_("Plugin broken")
return name.group(1)
+
def _getLink(self):
- self.html2 = self.load("http://www.gamefront.com/" + re.search("(files/service/thankyou\\?id=[A-Za-z0-9]+)",
+ self.html2 = self.load("http://www.gamefront.com/" + re.search("(files/service/thankyou\\?id=\w+)",
self.html).group(1))
- self.link = re.search("<a href=\"(http://media[0-9]+\.gamefront.com/.*)\">click here</a>", self.html2)
-
- return self.link.group(1).replace("&amp;", "&")
+ return re.search("<a href=\"(http://media\d+\.gamefront.com/.*)\">click here</a>", self.html2).group(1).replace("&amp;", "&")
def getInfo(urls):
@@ -70,15 +78,13 @@ def getInfo(urls):
result.append((url, 0, 1, url))
else:
name = re.search(GamefrontCom.PATTERN_FILENAME, html)
-
if name is None:
result.append((url, 0, 1, url))
- continue
-
- name = name.group(1)
- size = re.search(GamefrontCom.PATTERN_FILESIZE, html)
- size = parseFileSize(size.group(1))
+ else:
+ name = name.group(1)
+ size = re.search(GamefrontCom.PATTERN_FILESIZE, html)
+ size = parseFileSize(size.group(1))
- result.append((name, size, 3, url))
+ result.append((name, size, 3, url))
yield result