Code style fixes, mostly whitespace

This commit is contained in:
Laurent Bachelier 2013-08-04 20:00:19 +02:00
commit 23a71d847b
12 changed files with 84 additions and 73 deletions

View file

@ -32,6 +32,7 @@ from .collection import ArteLiveCollection
__all__ = ['IndexPage', 'VideoPage', 'ArteLivePage', 'ArteLiveCategorieVideoPage', 'ArteLiveVideoPage']
class ArteLiveVideoPage(BasePage):
def get_video(self, video=None, lang='fr', quality='hd'):
if not video:
@ -48,6 +49,7 @@ class ArteLiveVideoPage(BasePage):
video.url = urls.popitem()[1]
return video
class ArteLiveCategorieVideoPage(BasePage):
def iter_videos(self, lang='fr'):
videos = list()
@ -79,7 +81,7 @@ class ArteLiveCategorieVideoPage(BasePage):
en = re.compile("<enclosure.*?/event/.*?/(.*?)-.*?/>", re.DOTALL)
pix = re.compile("(?<=<enclosure url=\")(.*?)(?=\" type=\"image/)", re.DOTALL)
try:
ele['link'] = lk.search(chain).group(0)
ele['link'] = lk.search(chain).group(0)
except:
return None
try:
@ -98,8 +100,8 @@ class ArteLiveCategorieVideoPage(BasePage):
ele['date'] = "No date"
try:
s = (pt.search(chain).group(0))
s = HTMLParser.HTMLParser().unescape(s);
ele['pitch'] = HTMLParser.HTMLParser().unescape(s);
s = HTMLParser.HTMLParser().unescape(s)
ele['pitch'] = HTMLParser.HTMLParser().unescape(s)
except:
ele['pitch'] = "No description"
try:
@ -113,18 +115,20 @@ class ArteLiveCategorieVideoPage(BasePage):
ele['pict'] = None
return ele
class ArteLivePage(BasePage):
def iter_resources(self):
items = list()
for el in self.document.xpath('//ul[@id="categoryArray"]/li'):
m = re.match(r'http://liveweb.arte.tv/*', el.find('a').attrib['href'])
if m:
url = u'%s' %el.find('a').attrib['href']
url = u'%s' % el.find('a').attrib['href']
_id = url.split('/')[-2:-1][0]
item = ArteLiveCollection([u'live', u'%s'%_id], u'%s' %(el.find('a').text))
item = ArteLiveCollection([u'live', u'%s' % _id], u'%s' % (el.find('a').text))
items.append(item)
return items
class IndexPage(BasePage):
def iter_videos(self):
videos = self.document.getroot().cssselect("div[class=video]")

View file

@ -32,7 +32,7 @@ __all__ = ['LoginPage', 'IndexPage', 'AccountsPage', 'TransactionsPage', 'Unavai
class WikipediaARC4(object):
def __init__(self, key = None):
def __init__(self, key=None):
self.state = range(256)
self.x = self.y = 0
@ -54,6 +54,7 @@ class WikipediaARC4(object):
output[i] = chr((ord(input[i]) ^ self.state[(self.state[self.x] + self.state[self.y]) & 0xFF]))
return ''.join(output)
class RedirectPage(BasePage):
"""
var i = 'lyhrnu551jo42yfzx0jm0sqk';
@ -129,6 +130,7 @@ class RedirectPage(BasePage):
if redirect_url is not None:
self.browser.location(self.browser.request_class(self.browser.absurl(redirect_url), None, {'Referer': self.url}))
class UnavailablePage(BasePage):
def on_loaded(self):
try:
@ -290,6 +292,7 @@ class TransactionsPage(BasePage):
COL_VALUE_DATE = 4
COL_DEBIT = -2
COL_CREDIT = -1
def get_history(self):
for tr in self.document.xpath('//table[@id="tbl1"]/tbody/tr'):
tds = tr.findall('td')

View file

@ -48,8 +48,8 @@ class Boursorama(BaseBrowser):
'.*/date_anniversaire.phtml.*': UpdateInfoPage,
}
def __init__(self, device="weboob", enable_twofactors=False
, *args, **kwargs):
def __init__(self, device="weboob", enable_twofactors=False,
*args, **kwargs):
self.device = device
self.enable_twofactors = enable_twofactors
BaseBrowser.__init__(self, *args, **kwargs)
@ -69,9 +69,9 @@ class Boursorama(BaseBrowser):
self.page.authenticate(self.device)
else:
raise BrowserIncorrectAuthenticationCode(
"""Boursorama - activate the two factor authentication in boursorama config."""\
""" You will receive SMS code but are limited in request per day (around 15)"""
)
"""Boursorama - activate the two factor authentication in boursorama config."""
""" You will receive SMS code but are limited in request per day (around 15)"""
)
def login_mobile(self):
assert isinstance(self.username, basestring)

View file

@ -125,6 +125,3 @@ class AuthenticationPage(BasePage):
def print_cookies(self):
for c in self.browser._ua_handlers["_cookies"].cookiejar:
print "%s : %s" % (c.name, c.value)

View file

@ -94,7 +94,7 @@ class AccountsPage(CDNBasePage):
for line in data:
a = Account()
a.id = line[self.COL_ID].replace(' ','')
a.id = line[self.COL_ID].replace(' ', '')
fp = StringIO(unicode(line[self.COL_LABEL]).encode(self.browser.ENCODING))
a.label = self.parser.tocleanstring(self.parser.parse(fp, self.browser.ENCODING).xpath('//div[@class="libelleCompteTDB"]')[0])
a.balance = Decimal(FrenchTransaction.clean_amount(line[self.COL_BALANCE]))
@ -128,6 +128,7 @@ class ProAccountsPage(AccountsPage):
COL_BALANCE = 1
ARGS = ['Banque', 'Agence', 'classement', 'Serie', 'SSCompte', 'Devise', 'CodeDeviseCCB', 'LibelleCompte', 'IntituleCompte', 'Indiceclassement', 'IndiceCompte', 'NomClassement']
def params_from_js(self, text):
l = []
for sub in re.findall("'([^']*)'", text):
@ -141,7 +142,6 @@ class ProAccountsPage(AccountsPage):
return url, args
def get_list(self):
for tr in self.document.xpath('//table[@class="datas"]//tr'):
if tr.attrib.get('class', '') == 'entete':
@ -255,6 +255,7 @@ class TransactionsPage(CDNBasePage):
yield t
class ProTransactionsPage(TransactionsPage):
def get_next_args(self, args):
txt = self.get_from_js('myPage.setPiedPage(oNavSuivantPrec_1(', ')')

View file

@ -23,54 +23,53 @@ import time
import re
from weboob.tools.browser import BasePage, BrowserUnavailable
from weboob.tools.captcha.virtkeyboard import VirtKeyboard,VirtKeyboardError
from weboob.tools.captcha.virtkeyboard import VirtKeyboard, VirtKeyboardError
__all__ = ['LoginPage', 'ConfirmPage', 'InfoMessagePage']
class HelloBankVirtKeyboard(VirtKeyboard):
symbols={'0':'4d1e060efb694ee60e4bd062d800401c',
'1':'509134b5c09980e282cdd5867815e9e3',
'2':'4cd09c9c44405e00b12e0371e2f972ae',
'3':'227d854efc5623292eda4ca2f9bfc4d7',
'4':'be8d23e7f5fce646193b7b520ff80443',
'5':'5fe450b35c946c3a983f1df6e5b41fd1',
'6':'113a6f63714f5094c7f0b25caaa66f78',
'7':'de0e93ba880a8a052aea79237f08f3f8',
'8':'3d70474c05c240b606556c89baca0568',
'9':'040954a5e5e93ec2fb03ac0cfe592ac2'
}
symbols = {'0': '4d1e060efb694ee60e4bd062d800401c',
'1': '509134b5c09980e282cdd5867815e9e3',
'2': '4cd09c9c44405e00b12e0371e2f972ae',
'3': '227d854efc5623292eda4ca2f9bfc4d7',
'4': 'be8d23e7f5fce646193b7b520ff80443',
'5': '5fe450b35c946c3a983f1df6e5b41fd1',
'6': '113a6f63714f5094c7f0b25caaa66f78',
'7': 'de0e93ba880a8a052aea79237f08f3f8',
'8': '3d70474c05c240b606556c89baca0568',
'9': '040954a5e5e93ec2fb03ac0cfe592ac2'
}
url = "/NSImgBDGrille?timestamp=%d"
url="/NSImgBDGrille?timestamp=%d"
color = 17
color=17
def __init__(self,basepage):
def __init__(self, basepage):
coords = {}
coords["01"] = (31,28,49,49)
coords["02"] = (108,28,126,49)
coords["03"] = (185,28,203,49)
coords["04"] = (262,28,280,49)
coords["05"] = (339,28,357,49)
coords["06"] = (31,100,49,121)
coords["07"] = (108,100,126,121)
coords["08"] = (185,100,203,121)
coords["09"] = (262,100,280,121)
coords["10"] = (339,100,357,121)
coords["01"] = (31, 28, 49, 49)
coords["02"] = (108, 28, 126, 49)
coords["03"] = (185, 28, 203, 49)
coords["04"] = (262, 28, 280, 49)
coords["05"] = (339, 28, 357, 49)
coords["06"] = (31, 100, 49, 121)
coords["07"] = (108, 100, 126, 121)
coords["08"] = (185, 100, 203, 121)
coords["09"] = (262, 100, 280, 121)
coords["10"] = (339, 100, 357, 121)
VirtKeyboard.__init__(self,basepage.browser.openurl(self.url % time.time()),coords,self.color)
self.check_symbols(self.symbols,basepage.browser.responses_dirname)
VirtKeyboard.__init__(self, basepage.browser.openurl(self.url % time.time()), coords, self.color)
self.check_symbols(self.symbols, basepage.browser.responses_dirname)
def get_symbol_code(self,md5sum):
code=VirtKeyboard.get_symbol_code(self,md5sum)
def get_symbol_code(self, md5sum):
code = VirtKeyboard.get_symbol_code(self, md5sum)
return code
def get_string_code(self,string):
code=''
def get_string_code(self, string):
code = ''
for c in string:
code+=self.get_symbol_code(self.symbols[c])
code += self.get_symbol_code(self.symbols[c])
return code
@ -85,9 +84,9 @@ class LoginPage(BasePage):
def login(self, login, password):
try:
vk=HelloBankVirtKeyboard(self)
vk = HelloBankVirtKeyboard(self)
except VirtKeyboardError as err:
self.logger.error("Error: %s"%err)
self.logger.error("Error: %s" % err)
return False
self.browser.select_form('logincanalnet')
@ -114,4 +113,3 @@ class ConfirmPage(BasePage):
class InfoMessagePage(BasePage):
def on_loaded(self):
pass

View file

@ -88,7 +88,7 @@ class TransactionsFormatter(IFormatter):
else:
try:
_type = self.TYPES[obj.type]
except (IndexError,AttributeError):
except (IndexError, AttributeError):
_type = ''
label = obj.label
@ -115,6 +115,7 @@ class TransferFormatter(IFormatter):
result += u'Reason: %s\n' % obj.reason
return result
class InvestmentFormatter(IFormatter):
MANDATORY_FIELDS = ('label', 'quantity', 'unitvalue')
@ -134,7 +135,7 @@ class InvestmentFormatter(IFormatter):
self.tot_diff += diff
self.tot_valuation += obj.valuation
return u' %s %s %s %s %s %s' %\
return u' %s %s %s %s %s %s' % \
(self.colored('%-30s' % label[:30], 'red'),
self.colored('%-10s' % obj.code[:8], 'yellow') if not empty(obj.code) else ' ' * 10,
self.colored('%6d' % obj.quantity, 'yellow'),
@ -145,7 +146,7 @@ class InvestmentFormatter(IFormatter):
def flush(self):
self.output('-------------------------------+--------+----------+-----------+-----------+--------')
self.output(u' Total %s %s' %\
self.output(u' Total %s %s' %
(self.colored('%8.2f' % self.tot_valuation, 'yellow'),
self.colored('%8.2f' % self.tot_diff, 'green' if self.tot_diff >=0 else 'red')
))

View file

@ -17,7 +17,9 @@
# You should have received a copy of the GNU Affero General Public License
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
import urllib, sys, codecs
import urllib
import sys
import codecs
from PyQt4.QtCore import Qt, SIGNAL
from PyQt4.QtGui import QFrame, QImage, QPixmap, QFileDialog
@ -85,11 +87,11 @@ class Recipe(QFrame):
if not empty(self.recipe.picture_url):
data = urllib.urlopen(self.recipe.picture_url).read()
img = QImage.fromData(data)
self.ui.imageLabel.setPixmap(QPixmap.fromImage(img).scaledToWidth(250,Qt.SmoothTransformation))
self.ui.imageLabel.setPixmap(QPixmap.fromImage(img).scaledToWidth(250, Qt.SmoothTransformation))
def export(self):
fileDial = QFileDialog(self, 'Export "%s" recipe' %
self.recipe.title, '%s.kreml' % self.recipe.title.replace('/',','), 'Krecipe file (*.kreml);;all files (*)')
self.recipe.title, '%s.kreml' % self.recipe.title.replace('/', ','), 'Krecipe file (*.kreml);;all files (*)')
fileDial.setAcceptMode(QFileDialog.AcceptSave)
fileDial.setLabelText(QFileDialog.Accept, 'Export recipe')
fileDial.setLabelText(QFileDialog.FileName, 'Recipe file name')

View file

@ -26,18 +26,20 @@ from weboob.capabilities.job import ICapJob
from .ui.main_window_ui import Ui_MainWindow
class JobListWidgetItem(QListWidgetItem):
def __init__(self, job, *args, **kwargs):
QListWidgetItem.__init__(self, *args, **kwargs)
self.job = job
def __lt__(self, other):
return self.job.publication_date < other.job.publication_date
return self.job.publication_date < other.job.publication_date
def setAttrs(self, storage):
text = u'%s - %s' % (self.job.backend, self.job.title)
text = u'%s - %s' % (self.job.backend, self.job.title)
self.setText(text)
class MainWindow(QtMainWindow):
def __init__(self, config, storage, weboob, parent=None):
QtMainWindow.__init__(self, parent)
@ -129,4 +131,3 @@ class MainWindow(QtMainWindow):
self.ui.jobFrame.show()
else:
self.ui.jobFrame.hide()

View file

@ -18,7 +18,6 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
import sys
from weboob.capabilities.torrent import ICapTorrent, MagnetOnly
@ -56,7 +55,7 @@ class TorrentInfoFormatter(IFormatter):
for f in obj.files:
result += ' * %s\n' % f
result += '\n%sDescription%s\n' % (self.BOLD, self.NC)
result += '%s'%obj.description
result += '%s' % obj.description
return result
@ -71,6 +70,7 @@ class TorrentListFormatter(PrettyFormatter):
(5, 'green', None),
(10, 'green', 'bold'),
)
def _get_color(self, nb):
if empty(nb):
return self.colored('N/A', 'red')
@ -115,7 +115,7 @@ class Weboorrents(ReplApplication):
Get information about a torrent.
"""
torrent = self.get_object(id, 'get_torrent', ('description','files'))
torrent = self.get_object(id, 'get_torrent', ('description', 'files'))
if not torrent:
print >>sys.stderr, 'Torrent not found: %s' % id
return 3

View file

@ -19,8 +19,12 @@
from .base import IBaseCap, CapBaseObject, StringField, IntField, Field, empty
import lxml.etree as ET
import base64, re, urllib
import base64
import re
import urllib
__all__ = ['Recipe', 'ICapRecipe']
@ -42,6 +46,7 @@ class Comment():
result += 'comment: %s' % self.text
return result
class Recipe(CapBaseObject):
"""
Recipe object.
@ -108,7 +113,7 @@ class Recipe(CapBaseObject):
datab64 = base64.encodestring(data)[:-1]
pictures = ET.SubElement(desc, 'pictures')
pic = ET.SubElement(pictures, 'pic', {'format' : 'JPEG', 'id' : '1'})
pic = ET.SubElement(pictures, 'pic', {'format': 'JPEG', 'id': '1'})
pic.text = ET.CDATA(datab64)
if not empty(self.ingredients):

View file

@ -18,8 +18,6 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
import os
import shutil
@ -39,6 +37,7 @@ __all__ = ['Weboob']
class VersionsMismatchError(ConfigError):
pass
class Weboob(object):
"""
The main class of Weboob, used to manage backends and call methods.