diff --git a/fanficfare/adapters/base_xenforo2forum_adapter.py b/fanficfare/adapters/base_xenforo2forum_adapter.py
index f9fed473..9fcb12ed 100644
--- a/fanficfare/adapters/base_xenforo2forum_adapter.py
+++ b/fanficfare/adapters/base_xenforo2forum_adapter.py
@@ -37,7 +37,6 @@ logger = logging.getLogger(__name__)
class BaseXenForo2ForumAdapter(BaseXenForoForumAdapter):
def __init__(self, config, url):
- logger.info("init url: "+url)
BaseXenForoForumAdapter.__init__(self, config, url)
@classmethod
@@ -45,9 +44,14 @@ class BaseXenForo2ForumAdapter(BaseXenForoForumAdapter):
"Only needs to be overriden if has additional ini sections."
return super(BaseXenForo2ForumAdapter, cls).getConfigSections() + ['base_xenforo2forum']
- def performLogin(self):
+ def performLogin(self,data):
params = {}
+ if data and "Log in" not in data:
+ ## already logged in.
+ logger.debug("Already Logged In")
+ return
+
if self.password:
params['login'] = self.username
params['password'] = self.password
@@ -77,7 +81,7 @@ class BaseXenForo2ForumAdapter(BaseXenForoForumAdapter):
d = self._postUrl(loginUrl, params)# , headers={ 'referer':self.getURLPrefix() + '/login',
# 'origin':self.getURLPrefix() })
- if "Log In" in d:
+ if "Log in" in d:
# logger.debug(d)
logger.info("Failed to login to URL %s as %s" % (self.url,
params['login']))
@@ -242,3 +246,12 @@ class BaseXenForo2ForumAdapter(BaseXenForoForumAdapter):
## as XF1.
for tag in soup.find_all('div', class_="bbCodeBlock-expandContent"):
tag.name='blockquote'
+
+ def get_last_page_url(self,topsoup):
+ ##
+ ul = topsoup.find('ul',{'class':'pageNav-main'})
+ # logger.debug(ul)
+ lastpage = ul.find_all('a',href=re.compile(r'page-'))[-1]
+ # logger.debug(lastpage)
+ # doing make_soup will also cache posts from that last page.
+ return lastpage['href']
diff --git a/fanficfare/adapters/base_xenforoforum_adapter.py b/fanficfare/adapters/base_xenforoforum_adapter.py
index 03f62101..39147002 100644
--- a/fanficfare/adapters/base_xenforoforum_adapter.py
+++ b/fanficfare/adapters/base_xenforoforum_adapter.py
@@ -185,9 +185,14 @@ class BaseXenForoForumAdapter(BaseSiteAdapter):
'''
return True
- def performLogin(self):
+ def performLogin(self,data):
params = {}
+ if data and "Log Out" in data:
+ ## already logged in.
+ logger.debug("Already Logged In")
+ return
+
if self.password:
params['login'] = self.username
params['password'] = self.password
@@ -211,6 +216,7 @@ class BaseXenForoForumAdapter(BaseSiteAdapter):
d = self._fetchUrl(loginUrl, params)
if "Log Out" not in d:
+ logger.debug(d)
logger.info("Failed to login to URL %s as %s" % (self.url,
params['login']))
raise exceptions.FailedToLogin(self.url,params['login'])
@@ -381,9 +387,35 @@ class BaseXenForoForumAdapter(BaseSiteAdapter):
tmcat_index += 1
return threadmarks
+
+ def get_last_page_url(self,topsoup):
+ span = topsoup.find('span',{'class':'pageNavHeader'})
+ # logger.debug(span)
+ # span class="pageNavHeader" - not present if no pages
+ # first