diff --git a/desktop/qboobmsg.desktop b/desktop/qboobmsg.desktop new file mode 100644 index 00000000..d9f0f986 --- /dev/null +++ b/desktop/qboobmsg.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=QBoobmsg +Comment=Send and receive messages from various websites +Exec=qboobmsg +# Icon=qboobmsg +Terminal=false +Type=Application +StartupNotify=true +Categories=Network;Qt; diff --git a/desktop/qhavesex.desktop b/desktop/qhavesex.desktop new file mode 100644 index 00000000..ddad5cf8 --- /dev/null +++ b/desktop/qhavesex.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=QHavesex +Comment=Optimize your probabilities to have sex on dating websites +Exec=qhavesex +# Icon=qhavesex +Terminal=false +Type=Application +StartupNotify=true +Categories=Network;Chat;ContactManagement;Qt; diff --git a/desktop/qvideoob.desktop b/desktop/qvideoob.desktop new file mode 100644 index 00000000..da645fc2 --- /dev/null +++ b/desktop/qvideoob.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=QVideoob +Comment=Search for videos on many websites, and get info about them +Exec=qvideoob +# Icon=qvideoob +Terminal=false +Type=Application +StartupNotify=true +Categories=Video;Qt; diff --git a/desktop/weboob-config-qt.desktop b/desktop/weboob-config-qt.desktop new file mode 100644 index 00000000..719510a8 --- /dev/null +++ b/desktop/weboob-config-qt.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=Weboob backends configuration +Comment=Configure Weboob backends +Exec=weboob-config-qt +# Icon=weboob-config-qt +Terminal=false +Type=Application +StartupNotify=true +Categories=Utility;Qt; diff --git a/weboob/backends/aum/data/logo.png b/icons/aum.png similarity index 100% rename from weboob/backends/aum/data/logo.png rename to icons/aum.png diff --git a/icons/bnporc.png b/icons/bnporc.png new file mode 100644 index 00000000..7ed6ae89 Binary files /dev/null and b/icons/bnporc.png differ diff --git a/weboob/backends/canaltp/data/logo.png b/icons/canaltp.png similarity index 100% rename from weboob/backends/canaltp/data/logo.png rename to icons/canaltp.png diff --git a/weboob/backends/cragr/data/logo.png b/icons/cragr.png similarity index 100% rename from weboob/backends/cragr/data/logo.png rename to icons/cragr.png diff --git a/weboob/backends/dlfp/data/logo.png b/icons/dlfp.png similarity index 100% rename from weboob/backends/dlfp/data/logo.png rename to icons/dlfp.png diff --git a/weboob/backends/fourchan/data/logo.png b/icons/fourchan.png similarity index 100% rename from weboob/backends/fourchan/data/logo.png rename to icons/fourchan.png diff --git a/weboob/backends/gazelle/data/logo.png b/icons/gazelle.png similarity index 100% rename from weboob/backends/gazelle/data/logo.png rename to icons/gazelle.png diff --git a/weboob/backends/ina/data/logo.png b/icons/ina.png similarity index 100% rename from weboob/backends/ina/data/logo.png rename to icons/ina.png diff --git a/weboob/backends/transilien/data/logo.png b/icons/transilien.png similarity index 100% rename from weboob/backends/transilien/data/logo.png rename to icons/transilien.png diff --git a/weboob/backends/yahoo/data/logo.png b/icons/yahoo.png similarity index 100% rename from weboob/backends/yahoo/data/logo.png rename to icons/yahoo.png diff --git a/weboob/backends/youjizz/data/logo.png b/icons/youjizz.png similarity index 100% rename from weboob/backends/youjizz/data/logo.png rename to icons/youjizz.png diff --git a/weboob/backends/youporn/data/logo.png b/icons/youporn.png similarity index 100% rename from weboob/backends/youporn/data/logo.png rename to icons/youporn.png diff --git a/weboob/backends/youtube/data/logo.png b/icons/youtube.png similarity index 100% rename from weboob/backends/youtube/data/logo.png rename to icons/youtube.png diff --git a/setup.py b/setup.py index 702484c8..433d3a28 100755 --- a/setup.py +++ b/setup.py @@ -17,20 +17,32 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +from __future__ import with_statement + from setuptools import find_packages, setup +import glob import os +import subprocess +import sys +with open('/dev/null', 'w') as devnull: + process = subprocess.Popen(['which', 'pyuic4'], stdout=devnull) + return_code = process.wait() +if return_code != 0: + print 'pyuic4 is not installed on your system' + sys.exit(1) + os.system('make -C weboob/applications/qboobmsg/ui') os.system('make -C weboob/applications/qhavesex/ui') os.system('make -C weboob/applications/qvideoob/ui') os.system('make -C weboob/tools/application/qt') setup( - name='weboob-dev', + name='weboob', version='dev', - description='Weboob, Web Out Of Browsers - core library', + description='Weboob, Web Out Of Browsers - development version', author='Romain Bignon', author_email='weboob@lists.symlink.me', maintainer='Christophe Benz', @@ -57,3 +69,15 @@ setup( # 'WebOb', # python-webob ], ) + +def install_xdg(): + """ + On xdg-compliant systems, install desktop file and icon + """ + print 'Installing desktop menu files' + os.system('xdg-desktop-menu install --novendor desktop/*.desktop') + for filepath in glob.glob('icons/*'): + print 'Installing icon %s' % filepath + os.system('xdg-icon-resource install --size 64 --novendor %s' % filepath) + +install_xdg() diff --git a/weboob/backends/arte/backend.py b/weboob/backends/arte/backend.py index eec0e824..bd8c901c 100644 --- a/weboob/backends/arte/backend.py +++ b/weboob/backends/arte/backend.py @@ -37,8 +37,6 @@ class ArteBackend(BaseBackend, ICapVideo): VERSION = '0.2' DESCRIPTION = 'Arte french TV' LICENSE = 'GPLv3' - ICON = os.path.join(os.path.dirname(__file__), 'data/logo.png') - BROWSER = ArteBrowser def get_video(self, _id): diff --git a/weboob/backends/aum/backend.py b/weboob/backends/aum/backend.py index 05a3a37f..676a66c7 100644 --- a/weboob/backends/aum/backend.py +++ b/weboob/backends/aum/backend.py @@ -46,7 +46,6 @@ class AuMBackend(BaseBackend, ICapMessages, ICapMessagesReply, ICapDating, ICapC VERSION = '0.1' LICENSE = 'GPLv3' DESCRIPTION = u"“Adopte un mec” french dating website" - ICON = os.path.join(os.path.dirname(__file__), 'data/logo.png') CONFIG = {'username': BaseBackend.ConfigField(description='Username on website'), 'password': BaseBackend.ConfigField(description='Password of account', is_masked=True), 'register': BaseBackend.ConfigField(default=False, description='Register as new account?'), diff --git a/weboob/backends/bnporc/backend.py b/weboob/backends/bnporc/backend.py index ce96c239..43c98cd0 100644 --- a/weboob/backends/bnporc/backend.py +++ b/weboob/backends/bnporc/backend.py @@ -15,6 +15,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + import os from weboob.capabilities.bank import ICapBank, AccountNotFound @@ -22,15 +23,14 @@ from weboob.tools.backend import BaseBackend from .browser import BNPorc + class BNPorcBackend(BaseBackend, ICapBank): NAME = 'bnporc' MAINTAINER = 'Romain Bignon' EMAIL = 'romain@peerfuse.org' VERSION = '0.1' LICENSE = 'GPLv3' - ICON = os.path.join(os.path.dirname(__file__), 'data/logo.png') DESCRIPTION = 'BNP Paribas french bank\' website' - CONFIG = {'login': BaseBackend.ConfigField(description='Account ID'), 'password': BaseBackend.ConfigField(description='Password of account', is_masked=True) } diff --git a/weboob/backends/bnporc/data/logo.png b/weboob/backends/bnporc/data/logo.png deleted file mode 100644 index 6da4a4d1..00000000 Binary files a/weboob/backends/bnporc/data/logo.png and /dev/null differ diff --git a/weboob/backends/canaltp/backend.py b/weboob/backends/canaltp/backend.py index 04a73a7b..d0603eda 100644 --- a/weboob/backends/canaltp/backend.py +++ b/weboob/backends/canaltp/backend.py @@ -33,7 +33,6 @@ class CanalTPBackend(BaseBackend, ICapTravel): VERSION = '0.1' LICENSE = 'GPLv3' DESCRIPTION = "French trains" - ICON = os.path.join(os.path.dirname(__file__), 'data/logo.png') BROWSER = CanalTP def iter_station_search(self, pattern): diff --git a/weboob/backends/cragr/backend.py b/weboob/backends/cragr/backend.py index f8d5f78c..f69ba4f6 100644 --- a/weboob/backends/cragr/backend.py +++ b/weboob/backends/cragr/backend.py @@ -15,6 +15,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + import os from weboob.capabilities.bank import ICapBank, AccountNotFound @@ -22,6 +23,7 @@ from weboob.tools.backend import BaseBackend from .browser import Cragr + class CragrBackend(BaseBackend, ICapBank): NAME = 'cragr' MAINTAINER = 'Laurent Bachelier' @@ -29,8 +31,6 @@ class CragrBackend(BaseBackend, ICapBank): VERSION = '0.1' DESCRIPTION = 'Credit Agricole french bank\'s website' LICENSE = 'GPLv3' - ICON = os.path.join(os.path.dirname(__file__), 'data/logo.png') - CONFIG = {'login': BaseBackend.ConfigField(description='Account ID'), 'password': BaseBackend.ConfigField(description='Password of account', is_masked=True), 'website': BaseBackend.ConfigField(description='What website to use', default='m.lefil.com'), diff --git a/weboob/backends/dlfp/backend.py b/weboob/backends/dlfp/backend.py index 1189fa6f..7f20aedb 100644 --- a/weboob/backends/dlfp/backend.py +++ b/weboob/backends/dlfp/backend.py @@ -37,8 +37,6 @@ class DLFPBackend(BaseBackend, ICapMessages, ICapMessagesReply): VERSION = '0.1' LICENSE = 'GPLv3' DESCRIPTION = "Da Linux French Page" - ICON = os.path.join(os.path.dirname(__file__), 'data/logo.png') - CONFIG = {'username': BaseBackend.ConfigField(description='Username on website'), 'password': BaseBackend.ConfigField(description='Password of account', is_masked=True), 'get_news': BaseBackend.ConfigField(default=True, description='Get newspapers'), diff --git a/weboob/backends/fourchan/backend.py b/weboob/backends/fourchan/backend.py index cd544a9f..fd8bab6b 100644 --- a/weboob/backends/fourchan/backend.py +++ b/weboob/backends/fourchan/backend.py @@ -37,8 +37,6 @@ class FourChanBackend(BaseBackend, ICapMessages): VERSION = '0.1' LICENSE = 'GPLv3' DESCRIPTION = "4chan website" - ICON = os.path.join(os.path.dirname(__file__), 'data/logo.png') - CONFIG = {'boards': BaseBackend.ConfigField(description='Boards'), } STORAGE = {'boards': {}} diff --git a/weboob/backends/gazelle/backend.py b/weboob/backends/gazelle/backend.py index 096379e3..e2d2b5a6 100644 --- a/weboob/backends/gazelle/backend.py +++ b/weboob/backends/gazelle/backend.py @@ -33,8 +33,6 @@ class GazelleBackend(BaseBackend, ICapTorrent): VERSION = '0.1' DESCRIPTION = 'gazelle bittorrent tracker' LICENSE = 'GPLv3' - ICON = os.path.join(os.path.dirname(__file__), 'data/logo.png') - CONFIG = {'username': BaseBackend.ConfigField(description='Username on website'), 'password': BaseBackend.ConfigField(description='Password of account', is_masked=True), 'protocol': BaseBackend.ConfigField(description='Protocol to use ("http" or "https")', regexp='^(http|https)$'), diff --git a/weboob/backends/geolocip/backend.py b/weboob/backends/geolocip/backend.py index 7f3b3823..c683b932 100644 --- a/weboob/backends/geolocip/backend.py +++ b/weboob/backends/geolocip/backend.py @@ -34,7 +34,6 @@ class GeolocIpBackend(BaseBackend, ICapGeolocIp): VERSION = '0.1' LICENSE = 'GPLv3' DESCRIPTION = u"IP Adresses geolocalisation" - ICON = os.path.join(os.path.dirname(__file__), 'data/logo.png') CONFIG = {'email': BaseBackend.ConfigField(description='Username on website'), 'password': BaseBackend.ConfigField(description='Password of account', is_masked=True), } diff --git a/weboob/backends/ina/backend.py b/weboob/backends/ina/backend.py index b8074662..fed8a27d 100644 --- a/weboob/backends/ina/backend.py +++ b/weboob/backends/ina/backend.py @@ -35,8 +35,6 @@ class InaBackend(BaseBackend, ICapVideo): VERSION = '0.1' DESCRIPTION = 'INA french video archives' LICENSE = 'GPLv3' - ICON = os.path.join(os.path.dirname(__file__), 'data/logo.png') - BROWSER = InaBrowser def get_video(self, _id): diff --git a/weboob/backends/transilien/backend.py b/weboob/backends/transilien/backend.py index 870d57ea..572345c9 100644 --- a/weboob/backends/transilien/backend.py +++ b/weboob/backends/transilien/backend.py @@ -31,7 +31,6 @@ class TransilienBackend(BaseBackend, ICapTravel): VERSION = '0.1' LICENSE = 'GPLv3' DESCRIPTION = "Transports in Paris" - ICON = os.path.join(os.path.dirname(__file__), 'data/logo.png') BROWSER = Transilien def iter_station_search(self, pattern): diff --git a/weboob/backends/yahoo/backend.py b/weboob/backends/yahoo/backend.py index 1022db93..1b926838 100644 --- a/weboob/backends/yahoo/backend.py +++ b/weboob/backends/yahoo/backend.py @@ -37,8 +37,6 @@ class YahooBackend(BaseBackend, ICapWeather): VERSION = '0.1' DESCRIPTION = 'Yahoo' LICENSE = 'GPLv3' - ICON = os.path.join(os.path.dirname(__file__), 'data/logo.png') - WEATHER_URL = 'http://weather.yahooapis.com/forecastrss?w=%s&u=%s' def iter_city_search(self, pattern): diff --git a/weboob/backends/youjizz/backend.py b/weboob/backends/youjizz/backend.py index f45a60ca..90733da1 100644 --- a/weboob/backends/youjizz/backend.py +++ b/weboob/backends/youjizz/backend.py @@ -37,8 +37,6 @@ class YoujizzBackend(BaseBackend, ICapVideo): VERSION = '0.1' DESCRIPTION = 'Youjizz videos website' LICENSE = 'GPLv3' - ICON = os.path.join(os.path.dirname(__file__), 'data/logo.png') - BROWSER = YoujizzBrowser def get_video(self, _id): diff --git a/weboob/backends/youporn/backend.py b/weboob/backends/youporn/backend.py index 6a0ad4a5..5fd0d319 100644 --- a/weboob/backends/youporn/backend.py +++ b/weboob/backends/youporn/backend.py @@ -37,8 +37,6 @@ class YoupornBackend(BaseBackend, ICapVideo): VERSION = '0.1' DESCRIPTION = 'Youporn videos website' LICENSE = 'GPLv3' - ICON = os.path.join(os.path.dirname(__file__), 'data/logo.png') - BROWSER = YoupornBrowser def get_video(self, _id): diff --git a/weboob/backends/youtube/backend.py b/weboob/backends/youtube/backend.py index 102dbdb2..605e884a 100644 --- a/weboob/backends/youtube/backend.py +++ b/weboob/backends/youtube/backend.py @@ -38,8 +38,6 @@ class YoutubeBackend(BaseBackend, ICapVideo): VERSION = '0.1' DESCRIPTION = 'Youtube videos website' LICENSE = 'GPLv3' - ICON = os.path.join(os.path.dirname(__file__), 'data/logo.png') - BROWSER = YoutubeBrowser def get_video(self, _id): diff --git a/weboob/core/backends.py b/weboob/core/backends.py index ee41aa58..4b05dd8a 100644 --- a/weboob/core/backends.py +++ b/weboob/core/backends.py @@ -24,6 +24,7 @@ from logging import debug, error, exception, warning import os import re import stat +import xdg.IconTheme from weboob.capabilities.cap import ICap from weboob.tools.backend import BaseBackend @@ -69,6 +70,8 @@ class Backend(object): @property def icon_path(self): + if self.klass.ICON is None: + self.klass.ICON = xdg.IconTheme.getIconPath(self.klass.NAME) return self.klass.ICON def iter_caps(self): diff --git a/weboob/tools/backend.py b/weboob/tools/backend.py index c2c3fd2d..096ad964 100644 --- a/weboob/tools/backend.py +++ b/weboob/tools/backend.py @@ -66,7 +66,7 @@ class BaseBackend(object): # License of this backend. LICENSE = '' # Icon file path - ICON = '' + ICON = None # Configuration required for this backend. # Values must be ConfigField objects. CONFIG = {}