IGN:Various changes for the migration to calibre-ebook.com

This commit is contained in:
Kovid Goyal 2009-11-24 21:01:28 -07:00
parent 706d38d85a
commit 8e75b465bf
5 changed files with 24 additions and 93 deletions

View File

@ -9,10 +9,10 @@
new features: new features:
- title: Add option to swap title and author in the Bulk metadata dialog - title: Add option to swap title and author in the Bulk metadata dialog
tickets: #3885 tickets: [3885]
- title: Add option to download only social metadata - title: Add option to download only social metadata
tickets: #4015 tickets: [4015]
- title: Update bundled odfpy library to 0.9.2 for improved conversion of ODT files. - title: Update bundled odfpy library to 0.9.2 for improved conversion of ODT files.
@ -29,18 +29,18 @@
ignore the files whose names it cannot decode. ignore the files whose names it cannot decode.
- title: Fix various bugs in the downloading of social metadata in bulk - title: Fix various bugs in the downloading of social metadata in bulk
tickets: #4028, #4022 tickets: [4028, 4022]
- title: Do not URL encode paths to files in the XML output of calibredb list - title: Do not URL encode paths to files in the XML output of calibredb list
description: Stanza on the iPhone could not handle URL encoded paths description: Stanza on the iPhone could not handle URL encoded paths
- title: Fix rendering of stars in rating column in the library view - title: Fix rendering of stars in rating column in the library view
tickets: #3944 tickets: [3944]
- title: Fix PML parsing changes introduced in 0.6.22 as they break PDB eReader input badly. - title: Fix PML parsing changes introduced in 0.6.22 as they break PDB eReader input badly.
- title: "Conversion pipeline: Respect UTF-8/32 BOM mark when decoding files in addition to UTF-16 BOM." - title: "Conversion pipeline: Respect UTF-8/32 BOM mark when decoding files in addition to UTF-16 BOM."
tickets: #4025 tickets: [4025]
- title: Restore all sections to Guardian newspaper download - title: Restore all sections to Guardian newspaper download
@ -62,13 +62,13 @@
new features: new features:
- title: Support downloading of social metadata (ratings/tags/reviews etc.) - title: Support downloading of social metadata (ratings/tags/reviews etc.)
- description: > description: >
calibre is now able to download social metadata like tags/rating/reviews etc., calibre is now able to download social metadata like tags/rating/reviews etc.,
in addition to normal metadata and covers. Currently it uses Amazon as the only in addition to normal metadata and covers. Currently it uses Amazon as the only
source for social metadata, but the download system supports plugins for the source for social metadata, but the download system supports plugins for the
addition of more sources in the future. addition of more sources in the future.
type: major type: major
tickets: #2860 tickets: [2860]
- title: Convert metadata download system to plugins, with builtin plugins for isbndb.com, Google Books and Amazon - title: Convert metadata download system to plugins, with builtin plugins for isbndb.com, Google Books and Amazon
@ -78,18 +78,18 @@
bug fixes: bug fixes:
- title: Fix NYT Top stories, Barrons, New Scientist and Irish Times recipes - title: Fix NYT Top stories, Barrons, New Scientist and Irish Times recipes
tickets: #4009, #3964, #3972, #3987 tickets: [4009, 3964, 3972, 3987]
- title: "FB2 Output: Handle large paragraphs" - title: "FB2 Output: Handle large paragraphs"
tickets: #3941 tickets: [3941]
- title: "Bulk metadata download: Don't fail on downloading all remaining covers if there is an error downloading a single cover in the list" - title: "Bulk metadata download: Don't fail on downloading all remaining covers if there is an error downloading a single cover in the list"
- title: Populate site_customization for Input plugins - title: Populate site_customization for Input plugins
tickets: #3957 tickets: [3957]
- title: Fix news download scheduler raising an error for scheduled custom recipe that is subsequently deleted - title: Fix news download scheduler raising an error for scheduled custom recipe that is subsequently deleted
tickets: #4010 tickets: [4010]
@ -101,7 +101,7 @@
author: Oliver Niesner author: Oliver Niesner
- title: An Druma Mor - title: An Druma Mor
- author: "David O'Callaghan" author: "David O'Callaghan"
improved recipes: improved recipes:
- Critica Digital - Critica Digital

View File

@ -75,7 +75,13 @@ class Check(Command):
raise SystemExit(1) raise SystemExit(1)
cache[f] = mtime cache[f] = mtime
cPickle.dump(cache, open(self.CACHE, 'wb'), -1) cPickle.dump(cache, open(self.CACHE, 'wb'), -1)
wn_path = os.path.expanduser('~/work/servers/src/calibre_servers/main')
if os.path.exists(wn_path):
sys.path.insert(0, wn_path)
self.info('\tChecking Changelog...')
import whats_new
whats_new.test()
sys.path.remove(wn_path)
def report_errors(self, errors): def report_errors(self, errors):
for err in errors: for err in errors:

View File

@ -14,7 +14,7 @@ __all__ = [
'resources', 'resources',
'check', 'check',
'sdist', 'sdist',
'manual', 'tag_release', 'upload_rss', 'manual', 'tag_release',
'pypi_register', 'pypi_upload', 'upload_to_server', 'pypi_register', 'pypi_upload', 'upload_to_server',
'upload_user_manual', 'upload_to_mobileread', 'upload_demo', 'upload_user_manual', 'upload_to_mobileread', 'upload_demo',
'upload_to_sourceforge', 'upload_to_google_code', 'upload_to_sourceforge', 'upload_to_google_code',
@ -49,11 +49,10 @@ check = Check()
from setup.resources import Resources from setup.resources import Resources
resources = Resources() resources = Resources()
from setup.publish import Manual, TagRelease, UploadRss, Stage1, Stage2, \ from setup.publish import Manual, TagRelease, Stage1, Stage2, \
Stage3, Stage4, Publish Stage3, Stage4, Publish
manual = Manual() manual = Manual()
tag_release = TagRelease() tag_release = TagRelease()
upload_rss = UploadRss()
stage1 = Stage1() stage1 = Stage1()
stage2 = Stage2() stage2 = Stage2()
stage3 = Stage3() stage3 = Stage3()

View File

@ -6,8 +6,7 @@ __license__ = 'GPL v3'
__copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>' __copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en' __docformat__ = 'restructuredtext en'
import sys, os, shutil, subprocess, re, time, glob import os, shutil, subprocess, glob
from datetime import datetime
from setup import Command, __appname__, __version__ from setup import Command, __appname__, __version__
@ -43,7 +42,7 @@ class Stage2(Command):
class Stage3(Command): class Stage3(Command):
description = 'Stage 3 of the publish process' description = 'Stage 3 of the publish process'
sub_commands = ['upload_rss', 'upload_user_manual', 'upload_demo', 'sdist', sub_commands = ['upload_user_manual', 'upload_demo', 'sdist',
'upload_to_google_code', 'tag_release', 'upload_to_server', 'upload_to_google_code', 'tag_release', 'upload_to_server',
'upload_to_sourceforge', 'upload_to_mobileread', 'upload_to_sourceforge', 'upload_to_mobileread',
] ]
@ -99,76 +98,4 @@ class TagRelease(Command):
subprocess.check_call(('bzr tag '+__version__).split()) subprocess.check_call(('bzr tag '+__version__).split())
subprocess.check_call('bzr commit --unchanged -m'.split() + ['IGN:Tag release']) subprocess.check_call('bzr commit --unchanged -m'.split() + ['IGN:Tag release'])
try:
class UploadRss(Command):
description = 'Generate and upload a RSS feed of calibre releases'
from bzrlib import log as blog
class ChangelogFormatter(blog.LogFormatter):
supports_tags = True
supports_merge_revisions = False
_show_advice = False
def __init__(self, num_of_versions=20):
sys.path.insert(0, os.path.join(Command.SRC, 'calibre', 'utils'))
from rss_gen import RSS2
self.num_of_versions = num_of_versions
self.rss = RSS2(
title = 'calibre releases',
link = 'http://calibre.kovidgoyal.net/wiki/Changelog',
description = 'Latest release of calibre',
lastBuildDate = datetime.utcnow()
)
self.current_entry = None
def log_revision(self, r):
from rss_gen import RSSItem, Guid
if len(self.rss.items) > self.num_of_versions-1:
return
msg = r.rev.message
match = re.match(r'version\s+(\d+\.\d+.\d+)', msg)
if match:
if self.current_entry is not None:
mkup = '<div><ul>%s</ul></div>'
self.current_entry.description = mkup%(''.join(
self.current_entry.description))
if match.group(1) == '0.5.14':
self.current_entry.description = \
'''<div>See <a href="http://calibre.kovidgoyal.net/new_in_6">New in
6</a></div>'''
self.rss.items.append(self.current_entry)
timestamp = r.rev.timezone + r.rev.timestamp
self.current_entry = RSSItem(
title = 'calibre %s released'%match.group(1),
link = 'http://calibre.kovidgoyal.net/download',
guid = Guid(match.group(), False),
pubDate = datetime(*time.gmtime(timestamp)[:6]),
description = []
)
elif self.current_entry is not None:
if re.search(r'[a-zA-Z]', msg) and len(msg.strip()) > 5:
if 'translation' not in msg and not msg.startswith('IGN'):
msg = msg.replace('<', '&lt;').replace('>', '&gt;')
msg = re.sub('#(\d+)', r'<a href="http://calibre.kovidgoyal.net/ticket/\1">#\1</a>',
msg)
self.current_entry.description.append(
'<li>%s</li>'%msg.strip())
def run(self, opts):
from bzrlib import log, branch
bzr_path = os.path.expanduser('~/work/calibre')
b = branch.Branch.open(bzr_path)
lf = UploadRss.ChangelogFormatter()
self.info('\tGenerating bzr log...')
log.show_log(b, lf)
lf.rss.write_xml(open('/tmp/releases.xml', 'wb'))
self.info('\tUploading RSS to server...')
subprocess.check_call('scp /tmp/releases.xml divok:/var/www/calibre.kovidgoyal.net/htdocs/downloads'.split())
except ImportError:
class UploadRss(Command):
description = 'You need bzr installed to use this command'

View File

@ -12,10 +12,9 @@ from tempfile import NamedTemporaryFile
from setup import Command, __version__, installer_name, __appname__ from setup import Command, __version__, installer_name, __appname__
PREFIX = "/var/www/calibre.kovidgoyal.net" PREFIX = "/var/www/calibre-ebook.com"
DOWNLOADS = PREFIX+"/htdocs/downloads" DOWNLOADS = PREFIX+"/htdocs/downloads"
BETAS = DOWNLOADS +'/betas' BETAS = DOWNLOADS +'/betas'
DOCS = PREFIX+"/htdocs/apidocs"
USER_MANUAL = PREFIX+'/htdocs/user_manual' USER_MANUAL = PREFIX+'/htdocs/user_manual'
HTML2LRF = "calibre/ebooks/lrf/html/demo" HTML2LRF = "calibre/ebooks/lrf/html/demo"
TXT2LRF = "src/calibre/ebooks/lrf/txt/demo" TXT2LRF = "src/calibre/ebooks/lrf/txt/demo"