mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-06-23 15:30:45 -04:00
Various new Vietnamese news sources
This commit is contained in:
parent
6b238e35a2
commit
53e7aa12f6
@ -10,11 +10,17 @@ from distutils.core import Extension as _Extension
|
|||||||
from distutils.command.build_ext import build_ext as _build_ext
|
from distutils.command.build_ext import build_ext as _build_ext
|
||||||
from distutils.dep_util import newer_group
|
from distutils.dep_util import newer_group
|
||||||
from distutils import log
|
from distutils import log
|
||||||
|
from distutils.spawn import find_executable
|
||||||
|
|
||||||
import sipconfig, os, sys, string, glob, shutil
|
import sipconfig, os, sys, string, glob, shutil
|
||||||
from PyQt4 import pyqtconfig
|
from PyQt4 import pyqtconfig
|
||||||
iswindows = 'win32' in sys.platform
|
iswindows = 'win32' in sys.platform
|
||||||
QMAKE = os.path.expanduser('~/qt/bin/qmake') if 'darwin' in sys.platform else'qmake'
|
isosx = 'darwin' in sys.platform
|
||||||
|
QMAKE = '/Volumes/sw/qt/bin/qmake' if isosx else 'qmake'
|
||||||
|
if find_executable('qmake-qt4'):
|
||||||
|
QMAKE = find_executable('qmake-qt4')
|
||||||
|
elif find_executable('qmake'):
|
||||||
|
QMAKE = find_executable('qmake')
|
||||||
QMAKE = os.environ.get('QMAKE', QMAKE)
|
QMAKE = os.environ.get('QMAKE', QMAKE)
|
||||||
WINDOWS_PYTHON = ['C:/Python26/libs']
|
WINDOWS_PYTHON = ['C:/Python26/libs']
|
||||||
OSX_SDK = '/Developer/SDKs/MacOSX10.4u.sdk'
|
OSX_SDK = '/Developer/SDKs/MacOSX10.4u.sdk'
|
||||||
|
6
setup.py
6
setup.py
@ -65,7 +65,7 @@ def setup_mount_helper():
|
|||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
from setuptools import setup, find_packages
|
from setuptools import setup, find_packages
|
||||||
from pyqtdistutils import PyQtExtension, build_ext, Extension
|
from pyqtdistutils import PyQtExtension, build_ext, Extension, QMAKE
|
||||||
from upload import sdist, pot, build, build_py, manual, \
|
from upload import sdist, pot, build, build_py, manual, \
|
||||||
resources, clean, gui, translations, update, \
|
resources, clean, gui, translations, update, \
|
||||||
tag_release, upload_demo, build_linux, build_windows, \
|
tag_release, upload_demo, build_linux, build_windows, \
|
||||||
@ -76,10 +76,8 @@ if __name__ == '__main__':
|
|||||||
entry_points['console_scripts'].append(
|
entry_points['console_scripts'].append(
|
||||||
'calibre_postinstall = calibre.linux:post_install')
|
'calibre_postinstall = calibre.linux:post_install')
|
||||||
optional = []
|
optional = []
|
||||||
qmake = '/Volumes/sw/qt/bin/qmake' if isosx else 'qmake'
|
|
||||||
qmake = os.environ.get('QMAKE', qmake)
|
|
||||||
def qmake_query(arg=''):
|
def qmake_query(arg=''):
|
||||||
return subprocess.Popen([qmake, '-query', arg],
|
return subprocess.Popen([QMAKE, '-query', arg],
|
||||||
stdout=subprocess.PIPE).stdout.read()
|
stdout=subprocess.PIPE).stdout.read()
|
||||||
qt_inc = qt_lib = None
|
qt_inc = qt_lib = None
|
||||||
qt_inc = qmake_query('QT_INSTALL_HEADERS').splitlines()[0]
|
qt_inc = qmake_query('QT_INSTALL_HEADERS').splitlines()[0]
|
||||||
|
@ -35,14 +35,10 @@ normally have been passed to the output plugin.
|
|||||||
|
|
||||||
After specifying the input \
|
After specifying the input \
|
||||||
and output file you can customize the conversion by specifying various \
|
and output file you can customize the conversion by specifying various \
|
||||||
options. the available options depend on the input and output file types. \
|
options. The available options depend on the input and output file types. \
|
||||||
To get help on them specify the input and output file and then use the -h \
|
To get help on them specify the input and output file and then use the -h \
|
||||||
option.
|
option.
|
||||||
|
|
||||||
You can also get detailed help on all the options any input/output pair \
|
|
||||||
of formats supports by specifying the -h flag after the input and output \
|
|
||||||
filenames.
|
|
||||||
|
|
||||||
For full documentation of the conversion system see
|
For full documentation of the conversion system see
|
||||||
''') + 'http://calibre.kovidgoyal.net/user_manual/conversion.html'
|
''') + 'http://calibre.kovidgoyal.net/user_manual/conversion.html'
|
||||||
|
|
||||||
|
@ -17,7 +17,10 @@
|
|||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QLabel" name="label">
|
<widget class="QLabel" name="label">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Format:</string>
|
<string>&Format:</string>
|
||||||
|
</property>
|
||||||
|
<property name="buddy">
|
||||||
|
<cstring>opt_format</cstring>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -17,7 +17,10 @@
|
|||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QLabel" name="label_2">
|
<widget class="QLabel" name="label_2">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Line Un-Wrapping Factor:</string>
|
<string>Line &Un-Wrapping Factor:</string>
|
||||||
|
</property>
|
||||||
|
<property name="buddy">
|
||||||
|
<cstring>opt_unwrap_factor</cstring>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -50,7 +53,7 @@
|
|||||||
<item row="1" column="0">
|
<item row="1" column="0">
|
||||||
<widget class="QCheckBox" name="opt_no_images">
|
<widget class="QCheckBox" name="opt_no_images">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>No Images</string>
|
<string>No &Images</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -17,7 +17,10 @@
|
|||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QLabel" name="label">
|
<widget class="QLabel" name="label">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Paper Size:</string>
|
<string>&Paper Size:</string>
|
||||||
|
</property>
|
||||||
|
<property name="buddy">
|
||||||
|
<cstring>opt_paper_size</cstring>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -27,7 +30,10 @@
|
|||||||
<item row="1" column="0">
|
<item row="1" column="0">
|
||||||
<widget class="QLabel" name="label_2">
|
<widget class="QLabel" name="label_2">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Orientation:</string>
|
<string>&Orientation:</string>
|
||||||
|
</property>
|
||||||
|
<property name="buddy">
|
||||||
|
<cstring>opt_orientation</cstring>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -17,7 +17,10 @@
|
|||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QLabel" name="label">
|
<widget class="QLabel" name="label">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Line ending style:</string>
|
<string>&Line ending style:</string>
|
||||||
|
</property>
|
||||||
|
<property name="buddy">
|
||||||
|
<cstring>opt_newline</cstring>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -54,7 +54,7 @@ class ChangelogFormatter(blog.LogFormatter):
|
|||||||
for msg in entry[1]:
|
for msg in entry[1]:
|
||||||
txt.append(u' * ' + msg)
|
txt.append(u' * ' + msg)
|
||||||
|
|
||||||
return u'\n'.join(txt)
|
return (u'\n'.join(txt)).encode('ascii', 'replace')
|
||||||
|
|
||||||
def bzr_log_to_txt():
|
def bzr_log_to_txt():
|
||||||
path = BZR_PATH
|
path = BZR_PATH
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: calibre 0.6.6\n"
|
"Project-Id-Version: calibre 0.6.6\n"
|
||||||
"POT-Creation-Date: 2009-08-10 19:10+MDT\n"
|
"POT-Creation-Date: 2009-08-11 11:45+MDT\n"
|
||||||
"PO-Revision-Date: 2009-08-10 19:10+MDT\n"
|
"PO-Revision-Date: 2009-08-11 11:45+MDT\n"
|
||||||
"Last-Translator: Automatically generated\n"
|
"Last-Translator: Automatically generated\n"
|
||||||
"Language-Team: LANGUAGE\n"
|
"Language-Team: LANGUAGE\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@ -643,54 +643,52 @@ msgid ""
|
|||||||
"\n"
|
"\n"
|
||||||
"The output ebook format is guessed from the file extension of output_file. output_file can also be of the special format .EXT where EXT is the output file extension. In this case, the name of the output file is derived the name of the input file. Note that the filenames must not start with a hyphen. Finally, if output_file has no extension, then it is treated as a directory and an \"open ebook\" (OEB) consisting of HTML files is written to that directory. These files are the files that would normally have been passed to the output plugin.\n"
|
"The output ebook format is guessed from the file extension of output_file. output_file can also be of the special format .EXT where EXT is the output file extension. In this case, the name of the output file is derived the name of the input file. Note that the filenames must not start with a hyphen. Finally, if output_file has no extension, then it is treated as a directory and an \"open ebook\" (OEB) consisting of HTML files is written to that directory. These files are the files that would normally have been passed to the output plugin.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"After specifying the input and output file you can customize the conversion by specifying various options. the available options depend on the input and output file types. To get help on them specify the input and output file and then use the -h option.\n"
|
"After specifying the input and output file you can customize the conversion by specifying various options. The available options depend on the input and output file types. To get help on them specify the input and output file and then use the -h option.\n"
|
||||||
"\n"
|
|
||||||
"You can also get detailed help on all the options any input/output pair of formats supports by specifying the -h flag after the input and output filenames.\n"
|
|
||||||
"\n"
|
"\n"
|
||||||
"For full documentation of the conversion system see\n"
|
"For full documentation of the conversion system see\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:101
|
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:97
|
||||||
msgid "INPUT OPTIONS"
|
msgid "INPUT OPTIONS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:102
|
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:98
|
||||||
msgid "Options to control the processing of the input %s file"
|
msgid "Options to control the processing of the input %s file"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:108
|
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:104
|
||||||
msgid "OUTPUT OPTIONS"
|
msgid "OUTPUT OPTIONS"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:109
|
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:105
|
||||||
msgid "Options to control the processing of the output %s"
|
msgid "Options to control the processing of the output %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:123
|
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:119
|
||||||
msgid "Options to control the look and feel of the output"
|
msgid "Options to control the look and feel of the output"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:138
|
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:134
|
||||||
msgid "Control auto-detection of document structure."
|
msgid "Control auto-detection of document structure."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:148
|
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:144
|
||||||
msgid "Control the automatic generation of a Table of Contents. By default, if the source file has a Table of Contents, it will be used in preference to the automatically generated one."
|
msgid "Control the automatic generation of a Table of Contents. By default, if the source file has a Table of Contents, it will be used in preference to the automatically generated one."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:158
|
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:154
|
||||||
msgid "Options to set metadata in the output"
|
msgid "Options to set metadata in the output"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:161
|
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:157
|
||||||
msgid "Options to help with debugging the conversion"
|
msgid "Options to help with debugging the conversion"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:185
|
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:181
|
||||||
msgid "List builtin recipes"
|
msgid "List builtin recipes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:254
|
#: /home/kovid/work/calibre/src/calibre/ebooks/conversion/cli.py:250
|
||||||
msgid "Output saved to"
|
msgid "Output saved to"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -4129,7 +4127,7 @@ msgid ""
|
|||||||
"p, li { white-space: pre-wrap; }\n"
|
"p, li { white-space: pre-wrap; }\n"
|
||||||
"</style></head><body style=\" font-family:'DejaVu Sans'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
|
"</style></head><body style=\" font-family:'DejaVu Sans'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
|
||||||
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Set a regular expression pattern to use when trying to guess ebook metadata from filenames. </p>\n"
|
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Set a regular expression pattern to use when trying to guess ebook metadata from filenames. </p>\n"
|
||||||
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">A <a href=\"http://docs.python.org/lib/re-syntax.html\"><span style=\" text-decoration: underline; color:#0000ff;\">reference</span></a> on the syntax of regular expressions is available.</p>\n"
|
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">A <a href=\"http://docs.python.org/lib/re-syntax.html\"><span style=\" text-decoration: underline; color:#0000ee;\">reference</span></a> on the syntax of regular expressions is available.</p>\n"
|
||||||
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Use the <span style=\" font-weight:600;\">Test</span> functionality below to test your regular expression on a few sample filenames. The group names for the various metadata entries are documented in tooltips.</p></body></html>"
|
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Use the <span style=\" font-weight:600;\">Test</span> functionality below to test your regular expression on a few sample filenames. The group names for the various metadata entries are documented in tooltips.</p></body></html>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -5889,47 +5887,51 @@ msgid ""
|
|||||||
"%sUsage%s: %s\n"
|
"%sUsage%s: %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/config.py:81
|
#: /home/kovid/work/calibre/src/calibre/utils/config.py:87
|
||||||
msgid "Created by "
|
msgid "Created by "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/config.py:538
|
#: /home/kovid/work/calibre/src/calibre/utils/config.py:88
|
||||||
msgid "Path to the database in which books are stored"
|
msgid "Whenever you pass arguments to %prog that have spaces in them, enclose the arguments in quotation marks."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/config.py:540
|
#: /home/kovid/work/calibre/src/calibre/utils/config.py:540
|
||||||
msgid "Pattern to guess metadata from filenames"
|
msgid "Path to the database in which books are stored"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/config.py:542
|
#: /home/kovid/work/calibre/src/calibre/utils/config.py:542
|
||||||
msgid "Access key for isbndb.com"
|
msgid "Pattern to guess metadata from filenames"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/config.py:544
|
#: /home/kovid/work/calibre/src/calibre/utils/config.py:544
|
||||||
msgid "Default timeout for network operations (seconds)"
|
msgid "Access key for isbndb.com"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/config.py:546
|
#: /home/kovid/work/calibre/src/calibre/utils/config.py:546
|
||||||
msgid "Path to directory in which your library of books is stored"
|
msgid "Default timeout for network operations (seconds)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/config.py:548
|
#: /home/kovid/work/calibre/src/calibre/utils/config.py:548
|
||||||
msgid "The language in which to display the user interface"
|
msgid "Path to directory in which your library of books is stored"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/config.py:550
|
#: /home/kovid/work/calibre/src/calibre/utils/config.py:550
|
||||||
|
msgid "The language in which to display the user interface"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: /home/kovid/work/calibre/src/calibre/utils/config.py:552
|
||||||
msgid "The default output format for ebook conversions."
|
msgid "The default output format for ebook conversions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/config.py:554
|
#: /home/kovid/work/calibre/src/calibre/utils/config.py:556
|
||||||
msgid "Ordered list of formats to prefer for input."
|
msgid "Ordered list of formats to prefer for input."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/config.py:556
|
#: /home/kovid/work/calibre/src/calibre/utils/config.py:558
|
||||||
msgid "Read metadata from files"
|
msgid "Read metadata from files"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/utils/config.py:558
|
#: /home/kovid/work/calibre/src/calibre/utils/config.py:560
|
||||||
msgid "The priority of worker processes"
|
msgid "The priority of worker processes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -6406,272 +6408,3 @@ msgstr ""
|
|||||||
msgid "Show detailed output information. Useful for debugging"
|
msgid "Show detailed output information. Useful for debugging"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/blog/models.py:12
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/blog/models.py:38
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:45
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:103
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:141
|
|
||||||
msgid "title"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/blog/models.py:13
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/blog/models.py:39
|
|
||||||
msgid "slug"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/blog/models.py:16
|
|
||||||
msgid "category"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/blog/models.py:17
|
|
||||||
msgid "categories"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/blog/models.py:35
|
|
||||||
msgid "Draft"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/blog/models.py:36
|
|
||||||
msgid "Public"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/blog/models.py:41
|
|
||||||
msgid "body"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/blog/models.py:42
|
|
||||||
msgid "tease"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/blog/models.py:43
|
|
||||||
msgid "status"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/blog/models.py:44
|
|
||||||
msgid "allow comments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/blog/models.py:45
|
|
||||||
msgid "publish"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/blog/models.py:46
|
|
||||||
msgid "created"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/blog/models.py:47
|
|
||||||
msgid "modified"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/blog/models.py:53
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:153
|
|
||||||
msgid "post"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/blog/models.py:54
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:154
|
|
||||||
msgid "posts"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/admin.py:31
|
|
||||||
msgid "Fields updated automatically by Feedjack"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:17
|
|
||||||
msgid "Date published."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:18
|
|
||||||
msgid "Date the post was first obtained."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:22
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:38
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:98
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:126
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:173
|
|
||||||
msgid "name"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:23
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:26
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:105
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:142
|
|
||||||
msgid "link"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:27
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:61
|
|
||||||
msgid "links"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:39
|
|
||||||
msgid "url"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:42
|
|
||||||
msgid "Example"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:46
|
|
||||||
msgid "description"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:47
|
|
||||||
msgid "welcome"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:48
|
|
||||||
msgid "greets"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:50
|
|
||||||
msgid "default site"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:51
|
|
||||||
msgid "posts per page"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:52
|
|
||||||
msgid "order posts by"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:54
|
|
||||||
msgid "tagcloud level"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:55
|
|
||||||
msgid "show tagcloud"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:57
|
|
||||||
msgid "use internal cache"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:58
|
|
||||||
msgid "cache duration"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:59
|
|
||||||
msgid "Duration in seconds of the cached pages and data."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:63
|
|
||||||
msgid "template"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:65
|
|
||||||
msgid "This template must be a directory in your feedjack templates directory. Leave blank to use the default template."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:69
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:170
|
|
||||||
msgid "site"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:70
|
|
||||||
msgid "sites"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:96
|
|
||||||
msgid "feed url"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:99
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:175
|
|
||||||
msgid "shortname"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:100
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:178
|
|
||||||
msgid "is active"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:101
|
|
||||||
msgid "If disabled, this feed will not be further updated."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:104
|
|
||||||
msgid "tagline"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:108
|
|
||||||
msgid "etag"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:109
|
|
||||||
msgid "last modified"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:110
|
|
||||||
msgid "last checked"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:113
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:140
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:171
|
|
||||||
msgid "feed"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:114
|
|
||||||
msgid "feeds"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:129
|
|
||||||
msgid "tag"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:130
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:149
|
|
||||||
msgid "tags"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:143
|
|
||||||
msgid "content"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:144
|
|
||||||
msgid "date modified"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:145
|
|
||||||
msgid "guid"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:146
|
|
||||||
msgid "author"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:147
|
|
||||||
msgid "author email"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:148
|
|
||||||
msgid "comments"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:150
|
|
||||||
msgid "date created"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:174
|
|
||||||
msgid "Keep blank to use the Feed's original name."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:177
|
|
||||||
msgid "Keep blank to use the Feed's original shortname."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:179
|
|
||||||
msgid "If disabled, this subscriber will not appear in the site or in the site's feed."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:183
|
|
||||||
msgid "subscriber"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: /home/kovid/work/calibre/src/calibre/www/apps/feedjack/models.py:184
|
|
||||||
msgid "subscribers"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
|
@ -78,13 +78,15 @@ class OptionParser(_OptionParser):
|
|||||||
def __init__(self,
|
def __init__(self,
|
||||||
usage='%prog [options] filename',
|
usage='%prog [options] filename',
|
||||||
version='%%prog (%s %s)'%(__appname__, __version__),
|
version='%%prog (%s %s)'%(__appname__, __version__),
|
||||||
epilog=_('Created by ')+terminal_controller.RED+__author__+terminal_controller.NORMAL,
|
epilog=None,
|
||||||
gui_mode=False,
|
gui_mode=False,
|
||||||
conflict_handler='resolve',
|
conflict_handler='resolve',
|
||||||
**kwds):
|
**kwds):
|
||||||
usage = textwrap.dedent(usage)
|
usage = textwrap.dedent(usage)
|
||||||
usage += '''\n\nWhenever you pass arguments to %prog that have spaces in them, '''\
|
if epilog is None:
|
||||||
'''enclose the arguments in quotation marks.'''
|
epilog = _('Created by ')+terminal_controller.RED+__author__+terminal_controller.NORMAL
|
||||||
|
usage += '\n\n'+_('''Whenever you pass arguments to %prog that have spaces in them, '''
|
||||||
|
'''enclose the arguments in quotation marks.''')
|
||||||
_OptionParser.__init__(self, usage=usage, version=version, epilog=epilog,
|
_OptionParser.__init__(self, usage=usage, version=version, epilog=epilog,
|
||||||
formatter=CustomHelpFormatter(),
|
formatter=CustomHelpFormatter(),
|
||||||
conflict_handler=conflict_handler, **kwds)
|
conflict_handler=conflict_handler, **kwds)
|
||||||
|
@ -52,7 +52,7 @@ recipe_modules = ['recipe_' + r for r in (
|
|||||||
'diagonales', 'miradasalsur', 'newsweek_argentina', 'veintitres',
|
'diagonales', 'miradasalsur', 'newsweek_argentina', 'veintitres',
|
||||||
'gva_be', 'hln', 'tijd', 'degentenaar', 'inquirer_net', 'uncrate',
|
'gva_be', 'hln', 'tijd', 'degentenaar', 'inquirer_net', 'uncrate',
|
||||||
'fastcompany', 'accountancyage', 'laprensa_hn', 'latribuna',
|
'fastcompany', 'accountancyage', 'laprensa_hn', 'latribuna',
|
||||||
'eltiempo_hn', 'slate',
|
'eltiempo_hn', 'slate', 'tnxm', 'bbcvietnamese', 'vnexpress',
|
||||||
)]
|
)]
|
||||||
|
|
||||||
|
|
||||||
|
34
src/calibre/web/feeds/recipes/recipe_bbcvietnamese.py
Normal file
34
src/calibre/web/feeds/recipes/recipe_bbcvietnamese.py
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
__license__ = 'GPL v3'
|
||||||
|
__copyright__ = '2009, Huan Komrade T <huantnh at gmail.com>'
|
||||||
|
'''
|
||||||
|
bbc.co.uk
|
||||||
|
'''
|
||||||
|
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class BBCVietnamese(BasicNewsRecipe):
|
||||||
|
title = u'BBC Vietnamese'
|
||||||
|
__author__ = 'Huan Komrade T'
|
||||||
|
description = 'Vietnam news and current affairs from the British Broadcasting Corporation'
|
||||||
|
no_stylesheets = True
|
||||||
|
language = _('Vietnamese')
|
||||||
|
encoding = 'utf-8'
|
||||||
|
recursions = 0
|
||||||
|
|
||||||
|
remove_tags = [dict(name='div', attrs={'class':'footer'})]
|
||||||
|
extra_css = '.headline {font-size: x-large;} \n .fact { padding-top: 10pt }'
|
||||||
|
|
||||||
|
feeds = [
|
||||||
|
('Index', 'http://www.bbc.co.uk/vietnamese/index.xml'),
|
||||||
|
('Vietnam', 'http://www.bbc.co.uk/vietnamese/vietnam/index.xml'),
|
||||||
|
('Business', 'http://www.bbc.co.uk/vietnamese/business/index.xml'),
|
||||||
|
('Culture', 'http://www.bbc.co.uk/vietnamese/culture/index.xml'),
|
||||||
|
('Football', 'http://www.bbc.co.uk/vietnamese/football/index.xml'),
|
||||||
|
('Forum', 'http://www.bbc.co.uk/vietnamese/forum/index.xml'),
|
||||||
|
('In Depth', 'http://www.bbc.co.uk/vietnamese/indepth/index.xml'),
|
||||||
|
]
|
||||||
|
|
||||||
|
def print_version(self, url):
|
||||||
|
return url.replace('http://www.bbc.co.uk/vietnamese/', 'http://www.bbc.co.uk/vietnamese/lg/')
|
@ -1,39 +1,36 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai
|
# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai
|
||||||
from __future__ import with_statement
|
from __future__ import with_statement
|
||||||
|
|
||||||
__license__ = 'GPL v3'
|
__license__ = 'GPL v3'
|
||||||
__copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
|
__copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net> edited by Huan T'
|
||||||
__docformat__ = 'restructuredtext en'
|
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
from calibre.web.feeds.news import BasicNewsRecipe
|
|
||||||
|
class Slashdot(BasicNewsRecipe):
|
||||||
class Slashdot(BasicNewsRecipe):
|
title = u'Slashdot.org'
|
||||||
title = u'Slashdot.org'
|
oldest_article = 7
|
||||||
oldest_article = 7
|
max_articles_per_feed = 100
|
||||||
max_articles_per_feed = 100
|
language = _('English')
|
||||||
language = _('English')
|
__author__ = 'floweros edited by Huan T'
|
||||||
__author__ = 'floweros'
|
no_stylesheets = True
|
||||||
no_stylesheets = True
|
# keep_only_tags = [
|
||||||
keep_only_tags = [dict(name='div',attrs={'id':'article'})]
|
# dict(name='div',attrs={'class':'article'}),
|
||||||
remove_tags = [
|
# dict(name='div',attrs={'class':'commentTop'}),
|
||||||
dict(name='div',attrs={'id':'userlogin-title'}),
|
# ]
|
||||||
dict(name='div',attrs={'id':'userlogin-content'}),
|
|
||||||
dict(name='div',attrs={'id':'commentwrap'}),
|
feeds = [
|
||||||
dict(name='span',attrs={'id':'more_comments_num_a'}),
|
(u'Slashdot',
|
||||||
]
|
u'http://rss.slashdot.org/Slashdot/slashdot'),
|
||||||
|
(u'/. IT',
|
||||||
feeds = [
|
u'http://rss.slashdot.org/Slashdot/slashdotIT'),
|
||||||
(u'Slashdot',
|
(u'/. Hardware',
|
||||||
u'http://rss.slashdot.org/Slashdot/slashdot?m=5072'),
|
u'http://rss.slashdot.org/Slashdot/slashdotHardware'),
|
||||||
(u'/. IT',
|
(u'/. Linux',
|
||||||
u'http://rss.slashdot.org/Slashdot/slashdotIT'),
|
u'http://rss.slashdot.org/Slashdot/slashdotLinux'),
|
||||||
(u'/. Hardware',
|
(u'/. Your Rights Online',
|
||||||
u'http://rss.slashdot.org/Slashdot/slashdotHardware'),
|
u'http://rss.slashdot.org/Slashdot/slashdotYourRightsOnline')
|
||||||
(u'/. Linux',
|
]
|
||||||
u'http://rss.slashdot.org/Slashdot/slashdotLinux'),
|
|
||||||
(u'/. Your Rights Online',
|
def get_article_url(self, article):
|
||||||
u'http://rss.slashdot.org/Slashdot/slashdotYourRightsOnline')
|
return article.get('feedburner_origlink', None)
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
|
28
src/calibre/web/feeds/recipes/recipe_tnxm.py
Normal file
28
src/calibre/web/feeds/recipes/recipe_tnxm.py
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
__license__ = 'GPL v3'
|
||||||
|
__copyright__ = '2009, Wasabi <wasabi at tnxm.net>'
|
||||||
|
'''
|
||||||
|
tnxm.net
|
||||||
|
'''
|
||||||
|
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class TNXM(BasicNewsRecipe):
|
||||||
|
title = u'Thanh Nien Xa Me'
|
||||||
|
__author__ = 'Wasabi'
|
||||||
|
description = 'Vietnam news and current affairs from TNXM - the finest Vietnamese bulletin board.'
|
||||||
|
no_stylesheets = True
|
||||||
|
language = _('Vietnamese')
|
||||||
|
encoding = 'utf-8'
|
||||||
|
recursions = 0
|
||||||
|
|
||||||
|
remove_tags = [dict(name='div', attrs={'class':'footer'})]
|
||||||
|
extra_css = '.headline {font-size: x-large;} \n .fact { padding-top: 10pt }'
|
||||||
|
|
||||||
|
feeds = [
|
||||||
|
('Index', 'http://tnxm.net/external.php?type=RSS'),
|
||||||
|
]
|
||||||
|
|
||||||
|
def print_version(self, url):
|
||||||
|
return url.replace('showthread.php?', 'printthread.php?pp=160&')
|
36
src/calibre/web/feeds/recipes/recipe_vnexpress.py
Normal file
36
src/calibre/web/feeds/recipes/recipe_vnexpress.py
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
__license__ = 'GPL v3'
|
||||||
|
__copyright__ = '2009, Huan Komrade T <huantnh at gmail.com>'
|
||||||
|
'''
|
||||||
|
vnexpress.net
|
||||||
|
'''
|
||||||
|
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class BBCVietnamese(BasicNewsRecipe):
|
||||||
|
title = u'VnExpress'
|
||||||
|
__author__ = 'Huan Komrade T'
|
||||||
|
description = 'Vietnam news and current affairs from the Food Production Technology Corporation'
|
||||||
|
no_stylesheets = True
|
||||||
|
language = _('Vietnamese')
|
||||||
|
encoding = 'utf-8'
|
||||||
|
recursions = 0
|
||||||
|
|
||||||
|
remove_tags = [dict(name='div', attrs={'class':'footer'})]
|
||||||
|
extra_css = '.headline {font-size: x-large;} \n .fact { padding-top: 10pt }'
|
||||||
|
|
||||||
|
feeds = [
|
||||||
|
('Index', 'http://vnexpress.net/rss/gl/trang-chu.rss'),
|
||||||
|
('Vietnam', 'http://vnexpress.net/rss/gl/xa-hoi.rss'),
|
||||||
|
('World News', 'http://vnexpress.net/rss/gl/the-gioi.rss'),
|
||||||
|
('Business', 'http://vnexpress.net/rss/gl/kinh-doanh.rss'),
|
||||||
|
('Culture', 'http://vnexpress.net/rss/gl/van-hoa.rss'),
|
||||||
|
('Sports', 'http://vnexpress.net/rss/gl/the-thao.rss'),
|
||||||
|
('Lifestyle', 'http://vnexpress.net/rss/gl/doi-song.rss'),
|
||||||
|
('From The Readers', 'http://vnexpress.net/rss/gl/ban-doc-viet.rss'),
|
||||||
|
('From The Readers - Sharing', 'http://vnexpress.net/rss/gl/ban-doc-viet-tam-su.rss'),
|
||||||
|
]
|
||||||
|
|
||||||
|
def print_version(self, url):
|
||||||
|
return url + '?q=1'
|
Loading…
x
Reference in New Issue
Block a user