# -*- coding: utf8 -*-
"""
This script build a HTML file containing bookmarklets from a list of proxies
"""
import configparser
__author__ = "Pierre Poulain"
__copyright__ = "Copyright 2017"
__license__ = "GPL"
__version__ = "1.0"
__maintainer__ = "Pierre Poulain"
__email__ = "pierre.poulain@cupnet.net"
__status__ = "Development"
PROXY_NAME = "biblioproxy.txt"
BIBLIOMARKLETS_NAME = "bibliomarklets.html"
HTML_HEADER = """
Bibliomarklets : bookmarklets pour faciliter l'accès aux articles scientifiques payants
Bibliomarklets
"""
# need in order: alias, section, proxy, alias, and section
HTML_BOOKMARKLET = """
{alias}
accès via {section}
"""
HTML_FOOTER = """
Comment utiliser ces bibliomarklets ?
- Faites glisser le bouton qui vous intéresse (l'institution pour
laquelle vous avez un compte d'accès biblio) dans la barre de favoris
(pour Chrome), la barre personnelle (pour Firefox) ou directement dans
les bookmarks de votre navigateur.
- Lorsque vous tombez sur un article payant, cliquez sur le bookmarklet
que vous avez précédemment enregistré. La page devrait se recharger
en vous proposant de vous authentifier (avec le compte de votre
institution). Si votre compte est valide et que votre institution est
abonnée à la revue dont provient l'article, vous y aurez accès.
Comment contribuer ?
Le code utilisé pour générer cette page est disponible ici. N'hésitez pas à l'améliorer.
Si vous souhaitez ajouter votre institution, envoyez-moi un mail à pierre.poulain@cupnet.net (mais lisez ceci d'abord).
--
Pierre Poulain (cupnet.net, 2017)
"""
if __name__ == "__main__":
proxies = configparser.SafeConfigParser()
proxies.read(PROXY_NAME)
f_out = open(BIBLIOMARKLETS_NAME, "w")
f_out.write(HTML_HEADER)
# Read the whole configuration file
for section in proxies.sections():
proxy_dic = {}
for (key, value) in proxies.items(section):
proxy_dic[key] = value
f_out.write(HTML_BOOKMARKLET.format(alias=proxy_dic["alias"],
section=section,
proxy=proxy_dic["proxy"]))
f_out.write(HTML_FOOTER)
f_out.close()
print("wrote {}".format(BIBLIOMARKLETS_NAME))