pull/43/head
eric 2017-07-27 10:33:13 -04:00
parent 52127faec9
commit db97a98ae8
57 changed files with 130 additions and 130 deletions

View File

@ -11,7 +11,7 @@
{% if editions %} {% if editions %}
<ul> <ul>
{% for edition in editions %} {% for edition in editions %}
<li> <img src="http://covers.openlibrary.org/b/isbn/{{edition.isbn_10}}-S.jpg" /> {{edition.id}} | {{edition.title}} | <li> <img src="https://covers.openlibrary.org/b/isbn/{{edition.isbn_10}}-S.jpg" /> {{edition.id}} | {{edition.title}} |
<a href="{% url 'isbn' isbn=edition.isbn_10 %}">{{edition.isbn_10}}</a> | <a href="{% url 'isbn' isbn=edition.isbn_10 %}">{{edition.isbn_10}}</a> |
<a href="{% url 'isbn' isbn=edition.isbn_13 %}">{{edition.isbn_13}}</a> <a href="{% url 'isbn' isbn=edition.isbn_13 %}">{{edition.isbn_13}}</a>
{% endfor %} {% endfor %}

View File

@ -168,7 +168,7 @@ class ApiHelpView(TemplateView):
class OPDSNavigationView(TemplateView): class OPDSNavigationView(TemplateView):
json=False json=False
# http://stackoverflow.com/a/6867976: secret to how to change content-type # https://stackoverflow.com/a/6867976: secret to how to change content-type
def render_to_response(self, context, **response_kwargs): def render_to_response(self, context, **response_kwargs):
if json: if json:

View File

@ -479,7 +479,7 @@ def thingisbn(isbn):
Library Thing. (takes isbn_10 or isbn_13, returns isbn_10, except for 979 isbns, which come back as isbn_13') Library Thing. (takes isbn_10 or isbn_13, returns isbn_10, except for 979 isbns, which come back as isbn_13')
""" """
logger.info("looking up %s at ThingISBN" , isbn) logger.info("looking up %s at ThingISBN" , isbn)
url = "http://www.librarything.com/api/thingISBN/%s" % isbn url = "https://www.librarything.com/api/thingISBN/%s" % isbn
xml = requests.get(url, headers={"User-Agent": settings.USER_AGENT}).content xml = requests.get(url, headers={"User-Agent": settings.USER_AGENT}).content
doc = ElementTree.fromstring(xml) doc = ElementTree.fromstring(xml)
return [e.text for e in doc.findall('isbn')] return [e.text for e in doc.findall('isbn')]
@ -590,7 +590,7 @@ def add_openlibrary(work, hard_refresh = False):
w = None # openlibrary work json w = None # openlibrary work json
# get the 1st openlibrary match by isbn that has an associated work # get the 1st openlibrary match by isbn that has an associated work
url = "http://openlibrary.org/api/books" url = "https://openlibrary.org/api/books"
params = {"format": "json", "jscmd": "details"} params = {"format": "json", "jscmd": "details"}
subjects = [] subjects = []
for edition in work.editions.all(): for edition in work.editions.all():
@ -621,7 +621,7 @@ def add_openlibrary(work, hard_refresh = False):
logger.info("got openlibrary work %s for isbn %s", work_key, isbn_key) logger.info("got openlibrary work %s for isbn %s", work_key, isbn_key)
models.Identifier.get_or_add(type='olwk',value=work_key,work=work) models.Identifier.get_or_add(type='olwk',value=work_key,work=work)
try: try:
w = _get_json("http://openlibrary.org" + work_key,type='ol') w = _get_json("https://openlibrary.org" + work_key,type='ol')
if w.has_key('description'): if w.has_key('description'):
description=w['description'] description=w['description']
if isinstance(description,dict): if isinstance(description,dict):

View File

@ -5,13 +5,13 @@
## need to add versioned CC entries ## need to add versioned CC entries
INFO_CC = ( INFO_CC = (
('CC BY-NC-ND', 'by-nc-nd', 'Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported (CC BY-NC-ND 3.0)', 'http://creativecommons.org/licenses/by-nc-nd/3.0/', 'Creative Commons Attribution-NonCommercial-NoDerivs'), ('CC BY-NC-ND', 'by-nc-nd', 'Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported (CC BY-NC-ND 3.0)', 'https://creativecommons.org/licenses/by-nc-nd/3.0/', 'Creative Commons Attribution-NonCommercial-NoDerivs'),
('CC BY-NC-SA', 'by-nc-sa', 'Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0)', 'http://creativecommons.org/licenses/by-nc-sa/3.0/', 'Creative Commons Attribution-NonCommercial-ShareAlike'), ('CC BY-NC-SA', 'by-nc-sa', 'Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0)', 'https://creativecommons.org/licenses/by-nc-sa/3.0/', 'Creative Commons Attribution-NonCommercial-ShareAlike'),
('CC BY-NC', 'by-nc', 'Creative Commons Attribution-NonCommercial 3.0 Unported (CC BY-NC 3.0)', 'http://creativecommons.org/licenses/by-nc/3.0/', 'Creative Commons Attribution-NonCommercial'), ('CC BY-NC', 'by-nc', 'Creative Commons Attribution-NonCommercial 3.0 Unported (CC BY-NC 3.0)', 'https://creativecommons.org/licenses/by-nc/3.0/', 'Creative Commons Attribution-NonCommercial'),
('CC BY-ND', 'by-nd', 'Creative Commons Attribution-NoDerivs 3.0 Unported (CC BY-ND 3.0)', 'http://creativecommons.org/licenses/by-nd/3.0/','Creative Commons Attribution-NoDerivs'), ('CC BY-ND', 'by-nd', 'Creative Commons Attribution-NoDerivs 3.0 Unported (CC BY-ND 3.0)', 'https://creativecommons.org/licenses/by-nd/3.0/','Creative Commons Attribution-NoDerivs'),
('CC BY-SA', 'by-sa', 'Creative Commons Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)', 'http://creativecommons.org/licenses/by-sa/3.0/', 'Creative Commons Attribution-ShareAlike'), ('CC BY-SA', 'by-sa', 'Creative Commons Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)', 'https://creativecommons.org/licenses/by-sa/3.0/', 'Creative Commons Attribution-ShareAlike'),
('CC BY', 'by', 'Creative Commons Attribution 3.0 Unported (CC BY 3.0)', 'http://creativecommons.org/licenses/by/3.0/', 'Creative Commons Attribution'), ('CC BY', 'by', 'Creative Commons Attribution 3.0 Unported (CC BY 3.0)', 'https://creativecommons.org/licenses/by/3.0/', 'Creative Commons Attribution'),
('CC0', 'cc0', 'No Rights Reserved (CC0)', 'http://creativecommons.org/about/cc0', 'No Rights Reserved (CC0)'), ('CC0', 'cc0', 'No Rights Reserved (CC0)', 'https://creativecommons.org/about/cc0', 'No Rights Reserved (CC0)'),
) )
INFO_FREE = INFO_CC + ( INFO_FREE = INFO_CC + (
('GFDL', 'gdfl', 'GNU Free Documentation License', 'http://www.gnu.org/licenses/fdl-1.3-standalone.html', 'GNU Free Documentation License'), ('GFDL', 'gdfl', 'GNU Free Documentation License', 'http://www.gnu.org/licenses/fdl-1.3-standalone.html', 'GNU Free Documentation License'),
@ -19,7 +19,7 @@ INFO_FREE = INFO_CC + (
('OSI', 'opensource', 'OSI Approved License', 'https://opensource.org/licenses', 'OSI Approved License'), ('OSI', 'opensource', 'OSI Approved License', 'https://opensource.org/licenses', 'OSI Approved License'),
) )
INFO_PD = ( INFO_PD = (
('PD-US', 'pd-us', 'Public Domain, US', 'http://creativecommons.org/about/pdm', 'Public Domain, US'), ('PD-US', 'pd-us', 'Public Domain, US', 'https://creativecommons.org/about/pdm', 'Public Domain, US'),
) )
INFO_ALL = INFO_FREE + INFO_PD INFO_ALL = INFO_FREE + INFO_PD
# CCHOICES, CCGRANTS, and FORMATS are all used in places that expect tuples # CCHOICES, CCGRANTS, and FORMATS are all used in places that expect tuples

View File

@ -58,7 +58,7 @@ def safe_strip(a_string):
class GoodreadsClient(object): class GoodreadsClient(object):
url = 'http://www.goodreads.com' url = 'https://www.goodreads.com'
request_token_url = urljoin(url,'oauth/request_token') request_token_url = urljoin(url,'oauth/request_token')
authorize_url = urljoin(url, '/oauth/authorize') authorize_url = urljoin(url, '/oauth/authorize')
access_token_url = urljoin(url,'/oauth/access_token') access_token_url = urljoin(url,'/oauth/access_token')

View File

@ -1,6 +1,6 @@
## {{{ http://code.activestate.com/recipes/498104/ (r1) ## {{{ http://code.activestate.com/recipes/498104/ (r1)
## also http://stackoverflow.com/questions/4047511/checking-if-an-isbn-number-is-correct ## also https://stackoverflow.com/questions/4047511/checking-if-an-isbn-number-is-correct
import re import re

View File

@ -19,7 +19,7 @@ class LibraryThing(object):
This class retrieves and parses the CSV representation of a LibraryThing user's library. This class retrieves and parses the CSV representation of a LibraryThing user's library.
""" """
url = "https://www.librarything.com" url = "https://www.librarything.com"
csv_file_url = "http://www.librarything.com/export-csv" csv_file_url = "https://www.librarything.com/export-csv"
def __init__(self, username=None, password=None): def __init__(self, username=None, password=None):
self.username = username self.username = username
@ -160,7 +160,7 @@ class LibraryThing(object):
cookies = r.cookies cookies = r.cookies
while next_page: while next_page:
url = "http://www.librarything.com/catalog_bottom.php?view=%s&viewstyle=%d&collection=%d&offset=%d" % (self.username, url = "https://www.librarything.com/catalog_bottom.php?view=%s&viewstyle=%d&collection=%d&offset=%d" % (self.username,
view_style, COLLECTION, offset) view_style, COLLECTION, offset)
logger.info("url: %s", url) logger.info("url: %s", url)
if cookies is None: if cookies is None:

View File

@ -2,7 +2,7 @@ from django.core.management.base import BaseCommand
from regluit.core.models import Subject from regluit.core.models import Subject
#http://stackoverflow.com/questions/8733233/filtering-out-certain-bytes-in-python #https://stackoverflow.com/questions/8733233/filtering-out-certain-bytes-in-python
def valid_xml_char_ordinal(c): def valid_xml_char_ordinal(c):
codepoint = ord(c) codepoint = ord(c)

View File

@ -1,7 +1,7 @@
<div class="launch_top" id="degruyter_countdown" style="font-size:20px;text-align:center;width:50%"></div> <div class="launch_top" id="degruyter_countdown" style="font-size:20px;text-align:center;width:50%"></div>
<h4>Help us unglue this book!</h4> <h4>Help us unglue this book!</h4>
<p>De Gruyter has agreed to run an ungluing campaign for this book, if it can get enough support from ungluers like you. The target price will be $2100, after which the book will be free for everyone on earth to read, copy, and share, forever (under a Creative Commons <a href="http://creativecommons.org/licenses/by-nc-nd/3.0/">BY-NC-ND</a> license).</p> <p>De Gruyter has agreed to run an ungluing campaign for this book, if it can get enough support from ungluers like you. The target price will be $2100, after which the book will be free for everyone on earth to read, copy, and share, forever (under a Creative Commons <a href="https://creativecommons.org/licenses/by-nc-nd/3.0/">BY-NC-ND</a> license).</p>
<p>They'll launch a campaign when 50 ungluers have wished for this book. Right now <span id="wisher_data"></span>. </p> <p>They'll launch a campaign when 50 ungluers have wished for this book. Right now <span id="wisher_data"></span>. </p>

View File

@ -477,7 +477,7 @@ class Campaign(models.Model):
# copy custom premiums # copy custom premiums
new_premiums = self.premiums.filter(type='CU') new_premiums = self.premiums.filter(type='CU')
# setting pk to None will insert new copy http://stackoverflow.com/a/4736172/7782 # setting pk to None will insert new copy https://stackoverflow.com/a/4736172/7782
self.pk = None self.pk = None
self.status = 'INITIALIZED' self.status = 'INITIALIZED'

View File

@ -39,7 +39,7 @@ logger = logging.getLogger(__name__)
# create Wishlist and UserProfile to associate with User # create Wishlist and UserProfile to associate with User
def create_user_objects(sender, created, instance, **kwargs): def create_user_objects(sender, created, instance, **kwargs):
# use get_model to avoid circular import problem with models # use get_model to avoid circular import problem with models
# don't create Wishlist or UserProfile if we are loading fixtures http://stackoverflow.com/a/3500009/7782 # don't create Wishlist or UserProfile if we are loading fixtures https://stackoverflow.com/a/3500009/7782
if not kwargs.get('raw', False): if not kwargs.get('raw', False):
try: try:
Wishlist = apps.get_model('core', 'Wishlist') Wishlist = apps.get_model('core', 'Wishlist')

View File

@ -201,7 +201,7 @@ class BookLoaderTests(TestCase):
def test_thingisbn_mock(self): def test_thingisbn_mock(self):
with requests_mock.Mocker(real_http=True) as m: with requests_mock.Mocker(real_http=True) as m:
with open(os.path.join(TESTDIR, '9780441569595.xml')) as lt: with open(os.path.join(TESTDIR, '9780441569595.xml')) as lt:
m.get('http://www.librarything.com/api/thingISBN/0441007465', content=lt.read()) m.get('https://www.librarything.com/api/thingISBN/0441007465', content=lt.read())
self.test_thingisbn(mocking=True) self.test_thingisbn(mocking=True)
def test_thingisbn(self, mocking=False): def test_thingisbn(self, mocking=False):
@ -222,7 +222,7 @@ class BookLoaderTests(TestCase):
# ask for related editions to be added using the work we just created # ask for related editions to be added using the work we just created
with requests_mock.Mocker(real_http=True) as m: with requests_mock.Mocker(real_http=True) as m:
with open(os.path.join(TESTDIR, '9780441569595.xml')) as lt: with open(os.path.join(TESTDIR, '9780441569595.xml')) as lt:
m.get('http://www.librarything.com/api/thingISBN/0441007465', content=lt.read()) m.get('https://www.librarything.com/api/thingISBN/0441007465', content=lt.read())
bookloader.add_related('0441007465') # should join the editions bookloader.add_related('0441007465') # should join the editions
self.assertTrue(models.Edition.objects.count() >= edbefore) self.assertTrue(models.Edition.objects.count() >= edbefore)
self.assertTrue(models.Work.objects.filter(language=lang).count() < langbefore) self.assertTrue(models.Work.objects.filter(language=lang).count() < langbefore)
@ -243,7 +243,7 @@ class BookLoaderTests(TestCase):
edition = bookloader.add_by_isbn('9780606301121') # A People's History Of The United States edition = bookloader.add_by_isbn('9780606301121') # A People's History Of The United States
with requests_mock.Mocker(real_http=True) as m: with requests_mock.Mocker(real_http=True) as m:
with open(os.path.join(TESTDIR, '9780061989834.xml')) as lt: with open(os.path.join(TESTDIR, '9780061989834.xml')) as lt:
m.get('http://www.librarything.com/api/thingISBN/9780606301121', content=lt.read()) m.get('https://www.librarything.com/api/thingISBN/9780606301121', content=lt.read())
edition = tasks.populate_edition.run(edition.isbn_13) edition = tasks.populate_edition.run(edition.isbn_13)
self.assertTrue(edition.work.editions.all().count() > 10) self.assertTrue(edition.work.editions.all().count() > 10)
self.assertTrue(edition.work.subjects.all().count() > 8) self.assertTrue(edition.work.subjects.all().count() > 8)
@ -444,7 +444,7 @@ class BookLoaderTests(TestCase):
self.assertEqual(w.first_epub_url(), ebook_epub.url) self.assertEqual(w.first_epub_url(), ebook_epub.url)
self.assertEqual(w.first_pdf_url(), ebook_pdf.url) self.assertEqual(w.first_pdf_url(), ebook_pdf.url)
ebook_pdf.url='http://en.wikisource.org/wiki/Frankenstein' ebook_pdf.url='https://en.wikisource.org/wiki/Frankenstein'
self.assertEqual(ebook_pdf.set_provider(), 'Wikisource') self.assertEqual(ebook_pdf.set_provider(), 'Wikisource')
self.user.wishlist.add_work(w, 'test') self.user.wishlist.add_work(w, 'test')
@ -492,12 +492,12 @@ class BookLoaderTests(TestCase):
title = "Moby Dick" title = "Moby Dick"
ol_work_id = "/works/OL102749W" ol_work_id = "/works/OL102749W"
gutenberg_etext_id = 2701 gutenberg_etext_id = 2701
epub_url = "http://www.gutenberg.org/cache/epub/2701/pg2701.epub" epub_url = "https://www.gutenberg.org/cache/epub/2701/pg2701.epub"
license = 'http://www.gutenberg.org/license' license = 'https://www.gutenberg.org/license'
lang = 'en' lang = 'en'
format = 'epub' format = 'epub'
publication_date = datetime(2001,7,1) publication_date = datetime(2001,7,1)
seed_isbn = '9780142000083' # http://www.amazon.com/Moby-Dick-Whale-Penguin-Classics-Deluxe/dp/0142000086 seed_isbn = '9780142000083' # https://www.amazon.com/Moby-Dick-Whale-Penguin-Classics-Deluxe/dp/0142000086
ebook = bookloader.load_gutenberg_edition(title, gutenberg_etext_id, ol_work_id, seed_isbn, epub_url, format, license, lang, publication_date) ebook = bookloader.load_gutenberg_edition(title, gutenberg_etext_id, ol_work_id, seed_isbn, epub_url, format, license, lang, publication_date)
self.assertEqual(ebook.url, epub_url) self.assertEqual(ebook.url, epub_url)
@ -575,7 +575,7 @@ class CampaignTests(TestCase):
def test_required_fields(self): def test_required_fields(self):
# a campaign must have a target, deadline and a work # a campaign must have a target, deadline and a work
# see http://stackoverflow.com/questions/21458387/transactionmanagementerror-you-cant-execute-queries-until-the-end-of-the-atom # see https://stackoverflow.com/questions/21458387/transactionmanagementerror-you-cant-execute-queries-until-the-end-of-the-atom
with transaction.atomic(): with transaction.atomic():
c = Campaign() c = Campaign()
self.assertRaises(IntegrityError, c.save) self.assertRaises(IntegrityError, c.save)
@ -591,7 +591,7 @@ class CampaignTests(TestCase):
c = Campaign(target=D('1000.00'), deadline=datetime(2013, 1, 1), work=w) c = Campaign(target=D('1000.00'), deadline=datetime(2013, 1, 1), work=w)
c.license = 'CC BY-NC' c.license = 'CC BY-NC'
c.save() c.save()
self.assertEqual(c.license_url, 'http://creativecommons.org/licenses/by-nc/3.0/') self.assertEqual(c.license_url, 'https://creativecommons.org/licenses/by-nc/3.0/')
self.assertEqual(c.license_badge, '/static/images/ccbync.png') self.assertEqual(c.license_badge, '/static/images/ccbync.png')
def test_campaign_status(self): def test_campaign_status(self):
@ -769,7 +769,7 @@ class GoodreadsTest(TestCase):
gc = goodreads.GoodreadsClient(key=settings.GOODREADS_API_KEY, secret=settings.GOODREADS_API_SECRET) gc = goodreads.GoodreadsClient(key=settings.GOODREADS_API_KEY, secret=settings.GOODREADS_API_SECRET)
reviews = gc.review_list_unauth(user_id=gr_uid, shelf='read') reviews = gc.review_list_unauth(user_id=gr_uid, shelf='read')
# test to see whether there is a book field in each of the review # test to see whether there is a book field in each of the review
# url for test is http://www.goodreads.com/review/list.xml?id=767708&shelf=read&page=1&per_page=20&order=a&v=2&key=[key] # url for test is https://www.goodreads.com/review/list.xml?id=767708&shelf=read&page=1&per_page=20&order=a&v=2&key=[key]
self.assertTrue(all([r.has_key("book") for r in reviews])) self.assertTrue(all([r.has_key("book") for r in reviews]))
class LibraryThingTest(TestCase): class LibraryThingTest(TestCase):
@ -897,12 +897,12 @@ class DownloadPageTest(TestCase):
e2.save() e2.save()
eb1 = models.Ebook() eb1 = models.Ebook()
eb1.url = "http://example.org" eb1.url = "https://example.org"
eb1.edition = e1 eb1.edition = e1
eb1.format = 'epub' eb1.format = 'epub'
eb2 = models.Ebook() eb2 = models.Ebook()
eb2.url = "http://example2.com" eb2.url = "https://example2.com"
eb2.edition = e2 eb2.edition = e2
eb2.format = 'mobi' eb2.format = 'mobi'
@ -1203,7 +1203,7 @@ class OnixLoaderTests(TestCase):
'Subtitle': u'', 'Subtitle': u'',
'TableOfContents': u'', 'TableOfContents': u'',
'Title': u'Immersion into Noise', 'Title': u'Immersion into Noise',
'URL': u'http://dx.doi.org/10.3998/ohp.9618970.0001.001', 'URL': u'https://doi.org/10.3998/ohp.9618970.0001.001',
'eISBN': u'N/A', 'eISBN': u'N/A',
'eListPrice': u'N/A', 'eListPrice': u'N/A',
'ePublicationDate': u'', 'ePublicationDate': u'',
@ -1218,7 +1218,7 @@ class OnixLoaderTests(TestCase):
'keywords': u'Greece; Greek History; Lord Byron; War of Independence; Philhellenes; war; history; Romanticism', 'keywords': u'Greece; Greek History; Lord Byron; War of Independence; Philhellenes; war; history; Romanticism',
'Publication type': u'Monograph', 'GBP price epub': u'5.95', 'publication month': u'11', 'no of tables': u'', 'Publication type': u'Monograph', 'GBP price epub': u'5.95', 'publication month': u'11', 'no of tables': u'',
'GBP price paperback': u'15.95', 'AUD price epub': u'9.95', 'ISBN 4 with dashes': u'978-1-906924-02-7-epub', 'GBP price paperback': u'15.95', 'AUD price epub': u'9.95', 'ISBN 4 with dashes': u'978-1-906924-02-7-epub',
'DOI prefix': u'10.11647', 'License URL (human-readable summary)': u'http://creativecommons.org/licenses/by-nc-nd/2.0/', 'DOI prefix': u'10.11647', 'License URL (human-readable summary)': u'https://creativecommons.org/licenses/by-nc-nd/2.0/',
'Contributor 5 surname': u'', 'Contributor 1 first name': u'William', 'Contributor 6 first name': u'', 'Contributor 5 surname': u'', 'Contributor 1 first name': u'William', 'Contributor 6 first name': u'',
'ONIX Role Code (List 17)6': u'', 'ONIX Role Code (List 17)5': u'', 'ONIX Role Code (List 17)4': u'', 'ONIX Role Code (List 17)6': u'', 'ONIX Role Code (List 17)5': u'', 'ONIX Role Code (List 17)4': u'',
'ONIX Role Code (List 17)3': u'', 'ONIX Role Code (List 17)2': u'A24', 'ONIX Role Code (List 17)1': u'A01', 'ONIX Role Code (List 17)3': u'', 'ONIX Role Code (List 17)2': u'A24', 'ONIX Role Code (List 17)1': u'A01',
@ -1226,7 +1226,7 @@ class OnixLoaderTests(TestCase):
'ISBN 3 with dashes': u'978-1-906924-02-7', 'Countries excluded': u'None', 'first edition publication date': u'39753', 'ISBN 3 with dashes': u'978-1-906924-02-7', 'Countries excluded': u'None', 'first edition publication date': u'39753',
'Original Language': u'English', 'ISBN 1 with dashes': u'978-1-906924-00-3', 'Contributor 4 first name': u'', 'Original Language': u'English', 'ISBN 1 with dashes': u'978-1-906924-00-3', 'Contributor 4 first name': u'',
'ISBN 5 with dashes': u'978-1-906924-02-7-mobi', 'Contributor 2 surname': u'Beaton', 'ISBN 5 with dashes': u'978-1-906924-02-7-mobi', 'Contributor 2 surname': u'Beaton',
'License URL (our copyright tab)': u'http://www.openbookpublishers.com/isbn/9781906924003#copyright', 'License URL (our copyright tab)': u'https://www.openbookpublishers.com/isbn/9781906924003#copyright',
'BISAC subject code 1': u'HIS042000', 'BISAC subject code 3': u'HIS037060', 'BISAC subject code 1': u'HIS042000', 'BISAC subject code 3': u'HIS037060',
'BISAC subject code 2': u'HIS054000', 'BISAC subject code 5': u'', 'BISAC subject code 2': u'HIS054000', 'BISAC subject code 5': u'',
'BISAC subject code 4': u'', 'Status': u'Active', 'Geographic rights': u'Worldwide', 'BISAC subject code 4': u'', 'Status': u'Active', 'Geographic rights': u'Worldwide',

View File

@ -73,7 +73,7 @@ export ANSIBLE_VAULT_PASSWORD_FILE=[path]
``` ```
To use `git diff` with these encrypted files, see the To use `git diff` with these encrypted files, see the
[.gitattributes](https://github.com/Gluejar/regluit/blob/open_source/.gitattributes) has been added to allow for using `git diff` with `ansible-vault` files: [git - How to diff ansible vault changes? - Stack Overflow](http://stackoverflow.com/questions/29937195/how-to-diff-ansible-vault-changes/39511274#39511274). One highlight from the tips, run: [.gitattributes](https://github.com/Gluejar/regluit/blob/open_source/.gitattributes) has been added to allow for using `git diff` with `ansible-vault` files: [git - How to diff ansible vault changes? - Stack Overflow](https://stackoverflow.com/questions/29937195/how-to-diff-ansible-vault-changes/39511274#39511274). One highlight from the tips, run:
``` ```

View File

@ -11,7 +11,7 @@
<h1>Unglue.it is currently undergoing maintenance</h1> <h1>Unglue.it is currently undergoing maintenance</h1>
<p> <p>
While you wait, why not like us on <a href="http://facebook.com/unglueit">Facebook</a>, follow us on <a href="http://twitter.com/unglueit">Twitter</a>, or subscribe to our <a href="https://blog.unglue.it">blog</a>? We'll keep you up to date there with our progress fixing things. While you wait, why not like us on <a href="https://facebook.com/unglueit">Facebook</a>, follow us on <a href="https://twitter.com/unglueit">Twitter</a>, or subscribe to our <a href="https://blog.unglue.it">blog</a>? We'll keep you up to date there with our progress fixing things.
</p> </p>
<p>You can also help us by <a href="{% url 'feedback' %}">sending us feedback</a>.</p> <p>You can also help us by <a href="{% url 'feedback' %}">sending us feedback</a>.</p>

View File

@ -2,7 +2,7 @@
{% block title %} Everything You Always Wanted to Know {% endblock %} {% block title %} Everything You Always Wanted to Know {% endblock %}
{% block doccontent %} {% block doccontent %}
<h2>About</h2> <h2>About</h2>
<p><a href="https://unglue.it">Unglue.it</a> is a service provided by <a href="http://ebookfoundation.org">The Free Ebook Foundation</a> It's a place for individuals and institutions to join together to liberate specific ebooks and other types of digital content by paying authors and publishers to relicense their works under <a href="http://creativecommons.org">Creative Commons</a> licenses.</p> <p><a href="https://unglue.it">Unglue.it</a> is a service provided by <a href="https://ebookfoundation.org">The Free Ebook Foundation</a> It's a place for individuals and institutions to join together to liberate specific ebooks and other types of digital content by paying authors and publishers to relicense their works under <a href="https://creativecommons.org">Creative Commons</a> licenses.</p>
<p>What does this mean?</p> <p>What does this mean?</p>
<ul> <ul>
@ -28,7 +28,7 @@
<div class="outer"> <div class="outer">
<div><img src="/static/images/headshots/raymond.jpg" class="mediaborder" alt="raymond" /></div> <div><img src="/static/images/headshots/raymond.jpg" class="mediaborder" alt="raymond" /></div>
<div class="text"><b>Raymond Yee</b> is a data architect, author, consultant, and teacher. He is author of the leading book on web mashups, <a href="http://blog.mashupguide.net/2008/02/29/the-book-is-available-now/">Pro Web 2.0 Mashups: Remixing Data and Web Services</a> (published by Apress and licensed under a Creative Commons license), and has numerous blogs at his <a href="http://raymondyee.net/">personal site</a>. At the UC Berkeley School of Information, he taught Mixing and Remixing Information, a course on using APIs to create mashups. An open data and open government afficionado, he recently co-wrote three influential reports on how the US government can improve its efforts to make data and services available through APIs. Raymond served as the Integration Advisor for the Zotero Project (a widely used open source research tool) and managed the <a href="http://www.archive.org/details/zoterocommons">Zotero Commons</a>, a collaboration between George Mason University and the Internet Archive. Raymond has been an invited speaker about web technology at the Library of Congress, Fashion Institute of Technology, the O'Reilly Emerging Technology Conference, American Library Association, the Open Education conference, Code4lib, Educause, and NISO. While earning a Ph.D. in biophysics, he taught computer science, philosophy, and personal development to middle and high school students in the Academic Talent Development Program on the Berkeley campus. Raymond is an erstwhile tubaist, admirer of J. S. Bach, and son of industrious Chinese-Canadian restaurateurs.<br /><br /> <div class="text"><b>Raymond Yee</b> is a data architect, author, consultant, and teacher. He is author of the leading book on web mashups, <a href="http://blog.mashupguide.net/2008/02/29/the-book-is-available-now/">Pro Web 2.0 Mashups: Remixing Data and Web Services</a> (published by Apress and licensed under a Creative Commons license), and has numerous blogs at his <a href="http://raymondyee.net/">personal site</a>. At the UC Berkeley School of Information, he taught Mixing and Remixing Information, a course on using APIs to create mashups. An open data and open government afficionado, he recently co-wrote three influential reports on how the US government can improve its efforts to make data and services available through APIs. Raymond served as the Integration Advisor for the Zotero Project (a widely used open source research tool) and managed the <a href="https://www.archive.org/details/zoterocommons">Zotero Commons</a>, a collaboration between George Mason University and the Internet Archive. Raymond has been an invited speaker about web technology at the Library of Congress, Fashion Institute of Technology, the O'Reilly Emerging Technology Conference, American Library Association, the Open Education conference, Code4lib, Educause, and NISO. While earning a Ph.D. in biophysics, he taught computer science, philosophy, and personal development to middle and high school students in the Academic Talent Development Program on the Berkeley campus. Raymond is an erstwhile tubaist, admirer of J. S. Bach, and son of industrious Chinese-Canadian restaurateurs.<br /><br />
Recently, Raymond has been teaching a course at UC Berkeley's School of Information science on working with Open Data; with any luck, the textbook he's working on will be a subject of a future ungluing campaign!</div> Recently, Raymond has been teaching a course at UC Berkeley's School of Information science on working with Open Data; with any luck, the textbook he's working on will be a subject of a future ungluing campaign!</div>
</div> </div>

View File

@ -8,7 +8,7 @@
<b>What if you could</b> give a book to everyone on earth? Get an ebook and read it on any device, in any format, forever? Give an ebook to your library, for them to share? Own DRM-free ebooks, legally? Read free ebooks, and know their creators had been fairly paid? <b>What if you could</b> give a book to everyone on earth? Get an ebook and read it on any device, in any format, forever? Give an ebook to your library, for them to share? Own DRM-free ebooks, legally? Read free ebooks, and know their creators had been fairly paid?
</p> </p>
<p> <p>
At Unglue.it, you can reward creators that have set their books free, via <a href="http://creativecommons.org">Creative Commons</a> licenses. You can buy books that WANT to be free, but need funding to get there. You can pledge toward creating free ebooks from print books. At Unglue.it, you can reward creators that have set their books free, via <a href="https://creativecommons.org">Creative Commons</a> licenses. You can buy books that WANT to be free, but need funding to get there. You can pledge toward creating free ebooks from print books.
</p> </p>
<p> <p>
Traditionally published books are stuck: legal restrictions keep you from being able to enjoy and share them. Unglue.it gets them unstuck. Authors and publishers decide what amount lets them freely share their books with the world while still making a living. We raise that fee here through crowdfunding: people like you chipping in. When campaigns succeed, authors and publishers get paid, and you get a free ebook. Traditionally published books are stuck: legal restrictions keep you from being able to enjoy and share them. Unglue.it gets them unstuck. Authors and publishers decide what amount lets them freely share their books with the world while still making a living. We raise that fee here through crowdfunding: people like you chipping in. When campaigns succeed, authors and publishers get paid, and you get a free ebook.

View File

@ -17,7 +17,7 @@
<p>Ungluing campaigns offer ways to earn income while at the same time making your books free. They're a tool for you to reach out to, discover, interact with, and increase your audience while raising the profile of your work. Your unglued book, in turn, becomes an ambassador for the rest of your work.</p> <p>Ungluing campaigns offer ways to earn income while at the same time making your books free. They're a tool for you to reach out to, discover, interact with, and increase your audience while raising the profile of your work. Your unglued book, in turn, becomes an ambassador for the rest of your work.</p>
<p>Rest assured that, when you unglue a book, you retain the copyright. You can choose whichever <a href="http://creativecommons.org/licenses/">Creative Commons license</a> serves your interests best, whether that's inviting your fans to remix your work or sharing it widely while reserving certain rights. If a book is unglued via a pledge campaign, you should set the price to zero in the Smashwords admin so as to honor the intentions of your supporters. We encourage you to develop enhanced digital editions to sell alongside the Creative Commons Licensed edition and print versions for sale. </p> <p>Rest assured that, when you unglue a book, you retain the copyright. You can choose whichever <a href="https://creativecommons.org/licenses/">Creative Commons license</a> serves your interests best, whether that's inviting your fans to remix your work or sharing it widely while reserving certain rights. If a book is unglued via a pledge campaign, you should set the price to zero in the Smashwords admin so as to honor the intentions of your supporters. We encourage you to develop enhanced digital editions to sell alongside the Creative Commons Licensed edition and print versions for sale. </p>
<h2>The Fine Print</h2> <h2>The Fine Print</h2>

View File

@ -11,7 +11,7 @@
Of course, <span class="ungluer"></span> can't do that, because books are stuck. Copyright and ebook licensing often make it illegal for individuals, and even libraries, to share digital books. DRM makes sharing hard. At Unglue.it, we respect copyright and pay book creators, while enabling book lovers to share their favorite books with everyone. Of course, <span class="ungluer"></span> can't do that, because books are stuck. Copyright and ebook licensing often make it illegal for individuals, and even libraries, to share digital books. DRM makes sharing hard. At Unglue.it, we respect copyright and pay book creators, while enabling book lovers to share their favorite books with everyone.
</p> </p>
<p> <p>
In short, we get books unstuck. Authors and publishers decide what amount lets them freely share their books with the world while still making a living. We raise that fee here through crowdfunding: people like you and <span class="ungluer"></span> chipping in. When campaigns succeed, authors and publishers get paid, and they issue a free electronic edition under a <a href="http://creativecommons.org">Creative Commons</a> license. It's like public radio: once donors have covered the station's costs, its programs are free to all. In short, we get books unstuck. Authors and publishers decide what amount lets them freely share their books with the world while still making a living. We raise that fee here through crowdfunding: people like you and <span class="ungluer"></span> chipping in. When campaigns succeed, authors and publishers get paid, and they issue a free electronic edition under a <a href="https://creativecommons.org">Creative Commons</a> license. It's like public radio: once donors have covered the station's costs, its programs are free to all.
</p> </p>
<p> <p>
What if your favorite book could be free to the world? What if your favorite book could be free to the world?

View File

@ -11,7 +11,7 @@
We all do, but we can't, because books are stuck. Copyright and ebook licensing often make it illegal for individuals, and even libraries, to share digital books. DRM makes sharing hard. At Unglue.it, we respect copyright and pay book creators, while enabling book lovers to share their favorite books with everyone. We all do, but we can't, because books are stuck. Copyright and ebook licensing often make it illegal for individuals, and even libraries, to share digital books. DRM makes sharing hard. At Unglue.it, we respect copyright and pay book creators, while enabling book lovers to share their favorite books with everyone.
</p> </p>
<p> <p>
In short, we get books unstuck. Authors and publishers decide what amount lets them freely share their books with the world while still making a living. We raise that fee here through crowdfunding: people like you and <span class="ungluer"></span> chipping in. When campaigns succeed, book creators get paid, and they issue a free electronic edition under a <a href="http://creativecommons.org">Creative Commons</a> license. It's like public radio: once donors have covered the station's costs, its programs are free to all. In short, we get books unstuck. Authors and publishers decide what amount lets them freely share their books with the world while still making a living. We raise that fee here through crowdfunding: people like you and <span class="ungluer"></span> chipping in. When campaigns succeed, book creators get paid, and they issue a free electronic edition under a <a href="https://creativecommons.org">Creative Commons</a> license. It's like public radio: once donors have covered the station's costs, its programs are free to all.
</p> </p>
<p> <p>
<span class="ungluer"></span> hasn't nominated any favorite books yet, but you can. What if your favorite book could be free to the world? <span class="ungluer"></span> hasn't nominated any favorite books yet, but you can. What if your favorite book could be free to the world?

View File

@ -30,7 +30,7 @@
<div id="user-block1"> <div id="user-block1">
<div id="block-intro-text"><br /><span class="special-user-name">Ready to Read</span></div> <div id="block-intro-text"><br /><span class="special-user-name">Ready to Read</span></div>
</div> </div>
<div class="user-block24"><p style="font-size: larger;"><span class="user-short-info">These {% if pub_lang %}{{ pub_lang|ez_lang_name }} language {% endif %}{% if cc.is_cc %}<a href="http://creativecommons.org/">Creative Commons</a>{% endif %} {% if license %}<a href="{{cc.url}}">{{ license }}</a>{% endif %} {%if cc.is_pd %}ebooks are ready to read - they belong to all of us!{% else %}licensed ebooks are ready to read - the people who created them want you to read and share them.{% endif %}</span></p> <div class="user-block24"><p style="font-size: larger;"><span class="user-short-info">These {% if pub_lang %}{{ pub_lang|ez_lang_name }} language {% endif %}{% if cc.is_cc %}<a href="https://creativecommons.org/">Creative Commons</a>{% endif %} {% if license %}<a href="{{cc.url}}">{{ license }}</a>{% endif %} {%if cc.is_pd %}ebooks are ready to read - they belong to all of us!{% else %}licensed ebooks are ready to read - the people who created them want you to read and share them.{% endif %}</span></p>
{% if license %}<p style="font-size: smaller;"><a href="{{cc.url}}"><img src="{{cc.badge}}" alt="badge for {{license}}" style="float:left;padding:0.5em" /></a> {{cc.description}} {% if license %}<p style="font-size: smaller;"><a href="{{cc.url}}"><img src="{{cc.badge}}" alt="badge for {{license}}" style="float:left;padding:0.5em" /></a> {{cc.description}}
</p>{% endif %} </p>{% endif %}
</div> </div>

View File

@ -233,7 +233,7 @@ $j(document).ready(function() {
</p> </p>
<p class="ebook_download logo"><img src="/static/images/ibooks_logo.jpg" alt="iBooks Logo" />iBooks</p> <p class="ebook_download logo"><img src="/static/images/ibooks_logo.jpg" alt="iBooks Logo" />iBooks</p>
<ul> <ul>
<li><a href="http://itunes.apple.com/us/app/ibooks/id364709193?mt=8">Download the free iBooks app</a> from the App Store.</li> <li><a href="https://itunes.apple.com/us/app/ibooks/id364709193?mt=8">Download the free iBooks app</a> from the App Store.</li>
<li>Download the <a href="{{ formats.epub }}">epub file</a>.</li> <li>Download the <a href="{{ formats.epub }}">epub file</a>.</li>
<li>You will be given the option of opening the file in iBooks.</li> <li>You will be given the option of opening the file in iBooks.</li>
</ul> </ul>
@ -256,7 +256,7 @@ $j(document).ready(function() {
</p> </p>
<p class="ebook_download logo"><img src="/static/images/ibooks_logo.jpg" alt="iBooks Logo" />iBooks</p> <p class="ebook_download logo"><img src="/static/images/ibooks_logo.jpg" alt="iBooks Logo" />iBooks</p>
<ul> <ul>
<li><a href="http://itunes.apple.com/us/app/ibooks/id364709193?mt=8">Download the free iBooks app</a> from the App Store.</li> <li><a href="https://itunes.apple.com/us/app/ibooks/id364709193?mt=8">Download the free iBooks app</a> from the App Store.</li>
<li>Download the <a href="{{ formats.pdf }}">pdf file</a>.</li> <li>Download the <a href="{{ formats.pdf }}">pdf file</a>.</li>
<li>You will be given the option of opening the file in iBooks.</li> <li>You will be given the option of opening the file in iBooks.</li>
</ul> </ul>

View File

@ -7,7 +7,7 @@
<ul class="terms"> <ul class="terms">
<li>a list of ISBNs of other editions of the work</li> <li>a list of ISBNs of other editions of the work</li>
<li> <i>For Pledge Campaigns only</i><ol> <li> <i>For Pledge Campaigns only</i><ol>
<li>the Creative Commons license selected for the campaign, formatted in accordance with best practices at <a href="http://wiki.creativecommons.org/Marking/Creators">http://wiki.creativecommons.org/Marking/Creators</a>, and a statement that for the purposes of the license, "Non-Commercial" use shall include, but not be limited to, the distribution of the Work by a commercial entity without charge.</li> <li>the Creative Commons license selected for the campaign, formatted in accordance with best practices at <a href="https://wiki.creativecommons.org/Marking/Creators">https://wiki.creativecommons.org/Marking/Creators</a>, and a statement that for the purposes of the license, "Non-Commercial" use shall include, but not be limited to, the distribution of the Work by a commercial entity without charge.</li>
<li>an acknowledgement of Ungluers of the work, formatted in accordance with the premium descriptions on the Campaign page.</li> <li>an acknowledgement of Ungluers of the work, formatted in accordance with the premium descriptions on the Campaign page.</li>
<li>The Unglue.it logo</li> <li>The Unglue.it logo</li>
<li>the text “CC edition release enabled by Unglue.it users” (including the hyperlink to the site)</li> <li>the text “CC edition release enabled by Unglue.it users” (including the hyperlink to the site)</li>

View File

@ -22,7 +22,7 @@
<dl> <dl>
<dt>What is Unglue.it?</dt> <dt>What is Unglue.it?</dt>
<dd><a href="/">Unglue.it</a> is a place for individuals and institutions to join together to make ebooks free to the world. We work together to support authors, publishers, or other rights holders who want their ebooks to be free. We support <a href="http://creativecommons.org">Creative Commons</a> licensing as an enabling tool to "unglue" the ebooks. </dd> <dd><a href="/">Unglue.it</a> is a place for individuals and institutions to join together to make ebooks free to the world. We work together to support authors, publishers, or other rights holders who want their ebooks to be free. We support <a href="https://creativecommons.org">Creative Commons</a> licensing as an enabling tool to "unglue" the ebooks. </dd>
<dt>What are Ungluing Campaigns?</dt> <dt>What are Ungluing Campaigns?</dt>
@ -65,11 +65,11 @@ You may get premiums as part of a Pledge Campaign, depending on the amount you p
<dt>Does Unglue.it own the copyright of unglued books?</dt> <dt>Does Unglue.it own the copyright of unglued books?</dt>
<dd>No. When you unglue a book, the copyright stays with its current owner. Unglue.it does not buy copyrights. A <a href="http://creativecommons.org">Creative Commons</a> license is a licensing agreement. As with other licensing agreements, it grants certain rights to others but does not affect the status of the copyright.<br /><br /> <dd>No. When you unglue a book, the copyright stays with its current owner. Unglue.it does not buy copyrights. A <a href="https://creativecommons.org">Creative Commons</a> license is a licensing agreement. As with other licensing agreements, it grants certain rights to others but does not affect the status of the copyright.<br /><br />
Just like many traditional publishing transactions, ungluing is about licensing rights. We use <a href="http://creativecommons.org">Creative Commons</a> licenses which allow creators to choose the ways in which their works can be copied, shared and re-used.<br /><br /> Just like many traditional publishing transactions, ungluing is about licensing rights. We use <a href="https://creativecommons.org">Creative Commons</a> licenses which allow creators to choose the ways in which their works can be copied, shared and re-used.<br /><br />
If you are a copyright holder, you retain your copyright when you unglue a book. Creative Commons licenses are non-exclusive, so you also retain the right to enter into separate licensing agreements. You can read more about these licenses at the <a href="http://wiki.creativecommons.org/Frequently_Asked_Questions">Creative Commons FAQ</a>.</dd> If you are a copyright holder, you retain your copyright when you unglue a book. Creative Commons licenses are non-exclusive, so you also retain the right to enter into separate licensing agreements. You can read more about these licenses at the <a href="https://wiki.creativecommons.org/Frequently_Asked_Questions">Creative Commons FAQ</a>.</dd>
<dt>If I'm a rights holder and my book is unglued, does that mean I can never make money from it again?</dt> <dt>If I'm a rights holder and my book is unglued, does that mean I can never make money from it again?</dt>
@ -271,7 +271,7 @@ Support the books you've loved and make them free to everyone.
<dl> <dl>
<dt>So what is an unglued ebook?</dt> <dt>So what is an unglued ebook?</dt>
<dd>An unglued ebook is a book that's added a <a href="http://creativecommons.org">Creative Commons</a> license, after payments to the author, publisher, or other rights holder.<br /><br /> <dd>An unglued ebook is a book that's added a <a href="https://creativecommons.org">Creative Commons</a> license, after payments to the author, publisher, or other rights holder.<br /><br />
What does this mean for you? If you're a book lover, you can read unglued ebooks for free, on the device of your choice, in the format of your choice, and share them with all your friends. If you're a library, you can lend them to your patrons with no checkout limits or simultaneous user restrictions, and preserve them however you think best. If you're a rights holder, you get a payments in lieu of further royalties, while retaining copyright and all interests in your work. What does this mean for you? If you're a book lover, you can read unglued ebooks for free, on the device of your choice, in the format of your choice, and share them with all your friends. If you're a library, you can lend them to your patrons with no checkout limits or simultaneous user restrictions, and preserve them however you think best. If you're a rights holder, you get a payments in lieu of further royalties, while retaining copyright and all interests in your work.
</dd> </dd>
@ -314,7 +314,7 @@ Under all CC licenses (except CC0), you <b>cannot</b>: remove the author's name
<dt>What does non-commercial mean under Creative Commons?</dt> <dt>What does non-commercial mean under Creative Commons?</dt>
<dd>Creative Commons doesn't define "commercial" thoroughly (though it's worth reading what <a href="http://wiki.creativecommons.org/FAQ#Does_my_use_violate_the_NonCommercial_clause_of_the_licenses.3F">they have to say on the topic</a>). So as part of the Unglue.it process, ungluing rights holders agree that "For purposes of interpreting the CC License, Rights Holder agrees that 'non-commercial' use shall include, without limitation, distribution by a commercial entity without charge for access to the Work."<br /><br /> <dd>Creative Commons doesn't define "commercial" thoroughly (though it's worth reading what <a href="https://wiki.creativecommons.org/FAQ#Does_my_use_violate_the_NonCommercial_clause_of_the_licenses.3F">they have to say on the topic</a>). So as part of the Unglue.it process, ungluing rights holders agree that "For purposes of interpreting the CC License, Rights Holder agrees that 'non-commercial' use shall include, without limitation, distribution by a commercial entity without charge for access to the Work."<br /><br />
Unglue.it can't provide legal advice about how to interpret Creative Commons licenses, and we encourage you to read about the licenses yourself and, if necessary, seek qualified legal advice.</dd> Unglue.it can't provide legal advice about how to interpret Creative Commons licenses, and we encourage you to read about the licenses yourself and, if necessary, seek qualified legal advice.</dd>
@ -344,7 +344,7 @@ Unglue.it also provides links to download previously unglued books, creative com
<dl> <dl>
<dt>Why does an unglued book have to be in copyright?</dt> <dt>Why does an unglued book have to be in copyright?</dt>
<dd>Because books out of copyright are already free for you to copy, remix, and share! If a book is in the <a href="http://en.wikipedia.org/wiki/Public_domain">public domain</a>, it doesn't need to be unglued.</dd> <dd>Because books out of copyright are already free for you to copy, remix, and share! If a book is in the <a href="https://en.wikipedia.org/wiki/Public_domain">public domain</a>, it doesn't need to be unglued.</dd>
<dt>How can I tell if a book is in copyright or not?</dt> <dt>How can I tell if a book is in copyright or not?</dt>
@ -368,7 +368,7 @@ Unglue.it signs agreements assuring the copyright status of every work we unglue
<dd>To start a campaign, you need to be a verified rights holder who has signed a Platform Services Agreement with us. </dd> <dd>To start a campaign, you need to be a verified rights holder who has signed a Platform Services Agreement with us. </dd>
<dt>What do I need to do to become an authorized Rights Holder on Unglue.it?</dt> <dt>What do I need to do to become an authorized Rights Holder on Unglue.it?</dt>
<dd>Contact our Rights Holder Relations team, <a href="mailto:rights@gluejar.com">rights@gluejar.com</a>, to discuss signing our <a href="https://www.docracy.com/1mud3ve9w8/unglue-it-non-exclusive-platform-services-agreement">Platform Services Agreement (PSA)</a>, setting a revenue goal, and running a campaign on Unglue.it to release your book under a <a href="http://creativecommons.org">Creative Commons</a> license, or to raise money for a book you've already released under such a license.</dd> <dd>Contact our Rights Holder Relations team, <a href="mailto:rights@gluejar.com">rights@gluejar.com</a>, to discuss signing our <a href="https://www.docracy.com/1mud3ve9w8/unglue-it-non-exclusive-platform-services-agreement">Platform Services Agreement (PSA)</a>, setting a revenue goal, and running a campaign on Unglue.it to release your book under a <a href="https://creativecommons.org">Creative Commons</a> license, or to raise money for a book you've already released under such a license.</dd>
<dt>I haven't signed an agreement, but my books are listed on Unglue.it. What's going on?</dt> <dt>I haven't signed an agreement, but my books are listed on Unglue.it. What's going on?</dt>
<dd>If your book is listed on Unglue.it, it's because an unglue.it user has indicated some interested in the book. Perhaps your book has been added to a user's favorites list. Users can also use the site to post links to Creative Commons licensed or public domain books. Unglue.it works with non-profit sites such as Internet Archive to improve their coverage and preservation of Creative Commons licensed books. <dd>If your book is listed on Unglue.it, it's because an unglue.it user has indicated some interested in the book. Perhaps your book has been added to a user's favorites list. Users can also use the site to post links to Creative Commons licensed or public domain books. Unglue.it works with non-profit sites such as Internet Archive to improve their coverage and preservation of Creative Commons licensed books.
@ -485,7 +485,7 @@ If you want to find an interesting campaign and don't have a specific book in mi
<p>This assumes that you have a (free) Google account.</p> <p>This assumes that you have a (free) Google account.</p>
<ul class="bullets"> <ul class="bullets">
<li>Upload your PDF to <a href="http://drive.google.com">Google Drive</a>.</li> <li>Upload your PDF to <a href="https://drive.google.com">Google Drive</a>.</li>
<li>Click on the Share button.</li> <li>Click on the Share button.</li>
<li>Change the visibility to public on the web and click Save, then Done.</li> <li>Change the visibility to public on the web and click Save, then Done.</li>
<li>In the File menu, click the Embed this PDF option.</li> <li>In the File menu, click the Embed this PDF option.</li>
@ -646,7 +646,7 @@ If you're concerned a campaign may not reach its goal you have several options.
<dt>If I am an author do I have to talk to my publisher or agent first?</dt> <dt>If I am an author do I have to talk to my publisher or agent first?</dt>
<dd>It is your responsibility to get advice on the current status of any contracts you may have ever had for the right to publish your work, whether or not a book is in print now. <a href="http://creativecommons.org">Creative Commons</a> licenses are media neutral and worldwide (English). You may need waivers from other parties who have exclusive licenses for this book.</dd> <dd>It is your responsibility to get advice on the current status of any contracts you may have ever had for the right to publish your work, whether or not a book is in print now. <a href="https://creativecommons.org">Creative Commons</a> licenses are media neutral and worldwide (English). You may need waivers from other parties who have exclusive licenses for this book.</dd>
<dt>If I am a publisher, but I do not have an ebook royalty in my contract, can I sign your Platform Services Agreement?</dt> <dt>If I am a publisher, but I do not have an ebook royalty in my contract, can I sign your Platform Services Agreement?</dt>
@ -666,7 +666,7 @@ If you're concerned a campaign may not reach its goal you have several options.
<dt>Can an unglued ebook be issued only in the US?</dt> <dt>Can an unglued ebook be issued only in the US?</dt>
<dd>No. An unglued ebook is released to the world. It uses a <a href="http://creativecommons.org">Creative Commons</a> license which is territory-neutral. That is, the unglued ebook can be read by anyone, anywhere in the world, subject always to the limitations of the license.</dd> <dd>No. An unglued ebook is released to the world. It uses a <a href="https://creativecommons.org">Creative Commons</a> license which is territory-neutral. That is, the unglued ebook can be read by anyone, anywhere in the world, subject always to the limitations of the license.</dd>
{% endif %} {% endif %}
</dl> </dl>

View File

@ -75,7 +75,7 @@
<form id="clear_goodreads_id" method="post" action="{% url 'goodreads_flush_assoc' %}"> <form id="clear_goodreads_id" method="post" action="{% url 'goodreads_flush_assoc' %}">
<p><input type="submit" value="Unlink your Goodreads account from Unglue.it" /></p> <p><input type="submit" value="Unlink your Goodreads account from Unglue.it" /></p>
</form> </form>
<p>You can also revoke access for Unglue.it at <a href="http://www.goodreads.com/user/edit?tab=apps">Goodreads user apps panel</a>.</p> <p>You can also revoke access for Unglue.it at <a href="https://www.goodreads.com/user/edit?tab=apps">Goodreads user apps panel</a>.</p>
<hr /> <hr />

View File

@ -44,7 +44,7 @@ The library license gives download access to one library member at a time for 14
</ol> </ol>
</dd> </dd>
<dt>Stay in touch.</dt> <dt>Stay in touch.</dt>
<dd>You can follow us on Twitter (<a href="http://twitter.com/unglueit">@unglueit</a>), <a href="http://facebook/com/unglueit">Facebook</a>, and our <a href="https://blog.unglue.it">blog</a>, and <a href="http://eepurl.com/fKLfI">subscribe to our newsletter</a> (1-2 emails per month).</dd> <dd>You can follow us on Twitter (<a href="https://twitter.com/unglueit">@unglueit</a>), <a href="https://facebook/com/unglueit">Facebook</a>, and our <a href="https://blog.unglue.it">blog</a>, and <a href="http://eepurl.com/fKLfI">subscribe to our newsletter</a> (1-2 emails per month).</dd>
<dt>Spread the word.</dt> <dt>Spread the word.</dt>
<dd>There are social media sharing links on most pages on the site. There are some right here! <dd>There are social media sharing links on most pages on the site. There are some right here!
<div id="widgetcode">Copy/paste this into your site:<br /><textarea rows="7" cols="22">&lt;iframe src="https://{{request.META.HTTP_HOST}}/api/widget/{{work.first_isbn_13}}/" width="152" height="325" frameborder="0"&gt;&lt;/iframe&gt;</textarea></div> <div id="widgetcode">Copy/paste this into your site:<br /><textarea rows="7" cols="22">&lt;iframe src="https://{{request.META.HTTP_HOST}}/api/widget/{{work.first_isbn_13}}/" width="152" height="325" frameborder="0"&gt;&lt;/iframe&gt;</textarea></div>
@ -56,7 +56,7 @@ The library license gives download access to one library member at a time for 14
</ul> </ul>
<div class="clearfix"></div></dd> <div class="clearfix"></div></dd>
<dt>Educate yourself and your patrons about ebook issues and Creative Commons licenses.</dt> <dt>Educate yourself and your patrons about ebook issues and Creative Commons licenses.</dt>
<dd>Checkout limits, publishers who won't sell ebooks to libraries, DRM, companies tracking readers' behavior, library prices far in excess of consumer costs, incompatible technologies and formats, cataloging silos...you know why it's hard for you to deliver a seamless ereading experience to your patrons. Make sure they know, too. And make sure everyone knows how solutions, like <a href="http://creativecommons.org">Creative Commons</a> licenses, can help libraries and readers while respecting copyright and protecting creators' rights.</dd> <dd>Checkout limits, publishers who won't sell ebooks to libraries, DRM, companies tracking readers' behavior, library prices far in excess of consumer costs, incompatible technologies and formats, cataloging silos...you know why it's hard for you to deliver a seamless ereading experience to your patrons. Make sure they know, too. And make sure everyone knows how solutions, like <a href="https://creativecommons.org">Creative Commons</a> licenses, can help libraries and readers while respecting copyright and protecting creators' rights.</dd>
<dt>Support <a href="{% url 'campaign_list' 'ending' %}">our active campaigns</a>.</dt> <dt>Support <a href="{% url 'campaign_list' 'ending' %}">our active campaigns</a>.</dt>
<dd>Ultimately ebooks can't be unglued unless authors and publishers are paid for their work. Many of our staunchest supporters are librarians. There are also several libraries which have supported campaigns, including Leddy Library (University of Windsor, Ontario); the University of Alberta library ; and the Z. Smith Reynolds library (Wake Forest University).</dd> <dd>Ultimately ebooks can't be unglued unless authors and publishers are paid for their work. Many of our staunchest supporters are librarians. There are also several libraries which have supported campaigns, including Leddy Library (University of Windsor, Ontario); the University of Alberta library ; and the Z. Smith Reynolds library (Wake Forest University).</dd>
<dt>Give feedback and ask questions.</dt> <dt>Give feedback and ask questions.</dt>

View File

@ -77,7 +77,7 @@ function highlightTarget(targetdiv) {
</a> </a>
{% endif %} {% endif %}
{% if library.user.profile.facebook_id %} {% if library.user.profile.facebook_id %}
<a href="http://www.facebook.com/profile.php?id={{library.user.profile.facebook_id}}" class="nounderline"> <a href="https://www.facebook.com/profile.php?id={{library.user.profile.facebook_id}}" class="nounderline">
<img src="/static/images/supporter_icons/facebook_square.png" alt="{{ supporter }}'s Facebook" title="{{ supporter }}'s Facebook" /> <img src="/static/images/supporter_icons/facebook_square.png" alt="{{ supporter }}'s Facebook" title="{{ supporter }}'s Facebook" />
</a> </a>
{% endif %} {% endif %}
@ -92,7 +92,7 @@ function highlightTarget(targetdiv) {
</a> </a>
{% endif %} {% endif %}
{% if library.user.profile.librarything_id %} {% if library.user.profile.librarything_id %}
<a href="http://www.librarything.com/profile/{{ library.user.profile.librarything_id }}" class="nounderline"> <a href="https://www.librarything.com/profile/{{ library.user.profile.librarything_id }}" class="nounderline">
<img src="/static/images/supporter_icons/librarything_square.png" alt="{{ supporter }}'s profile on LibraryThing" title="{{ supporter }}'s page on LibraryThing" /> <img src="/static/images/supporter_icons/librarything_square.png" alt="{{ supporter }}'s profile on LibraryThing" title="{{ supporter }}'s page on LibraryThing" />
</a> </a>
{% endif %} {% endif %}

View File

@ -13,7 +13,7 @@
{% if books %} {% if books %}
<ul> <ul>
{% for book in books|slice:":50" %} {% for book in books|slice:":50" %}
<li>{% if lt_api_key %}<img src="http://covers.librarything.com/devkey/{{lt_api_key}}/small/isbn/{{book.isbn}}" />{% endif %}<img src="http://covers.openlibrary.org/b/isbn/{{book.isbn}}-S.jpg" />{{book.title.title}} | ISBN:{{book.isbn}} | Work ID:{{book.work_id}} | Book ID:{{book.book_id}}</li> <li>{% if lt_api_key %}<img src="https://covers.librarything.com/devkey/{{lt_api_key}}/small/isbn/{{book.isbn}}" />{% endif %}<img src="https://covers.openlibrary.org/b/isbn/{{book.isbn}}-S.jpg" />{{book.title.title}} | ISBN:{{book.isbn}} | Work ID:{{book.work_id}} | Book ID:{{book.book_id}}</li>
{% endfor %} {% endfor %}
</ul> </ul>
{% endif %} {% endif %}

View File

@ -181,10 +181,10 @@ Please fix the following before launching your campaign:
{% ifnotequal campaign_status 'ACTIVE' %} {% ifnotequal campaign_status 'ACTIVE' %}
{% ifnotequal campaign.type 3 %} {% ifnotequal campaign.type 3 %}
<h3>License being offered</h3> <h3>License being offered</h3>
<p> This is the license you are offering to use once the campaign succeeds. For more information on the licenses you can use, see <a href="http://creativecommons.org/licenses">Creative Commons: About the Licenses</a>. Once your campaign is active, you'll be able to switch to a less restrictive license, but not a more restrictive one. We encourage you to pick the least restrictive license you are comfortable with, as this will increase the ways people can use your unglued ebook and motivate more people to donate.</p> <p> This is the license you are offering to use once the campaign succeeds. For more information on the licenses you can use, see <a href="https://creativecommons.org/licenses">Creative Commons: About the Licenses</a>. Once your campaign is active, you'll be able to switch to a less restrictive license, but not a more restrictive one. We encourage you to pick the least restrictive license you are comfortable with, as this will increase the ways people can use your unglued ebook and motivate more people to donate.</p>
{% else %} {% else %}
<h3>License Being Used</h3> <h3>License Being Used</h3>
<p> This is the license you are using. For more information on the licenses you can use, see <a href="http://creativecommons.org/licenses">Creative Commons: About the Licenses</a>. <p> This is the license you are using. For more information on the licenses you can use, see <a href="https://creativecommons.org/licenses">Creative Commons: About the Licenses</a>.
Once your campaign is active, you'll be able to switch to a less restrictive license, but not a more restrictive one. Once your campaign is active, you'll be able to switch to a less restrictive license, but not a more restrictive one.
We encourage you to pick the least restrictive license you are comfortable with, as this will increase the ways people can use your unglued ebook and motivate more people to participate. We encourage you to pick the least restrictive license you are comfortable with, as this will increase the ways people can use your unglued ebook and motivate more people to participate.
</p> </p>
@ -241,7 +241,7 @@ Please fix the following before launching your campaign:
{% else %} {% else %}
<p>You are offering your ebook under a <b><a href="{{campaign.license_url }}">{{ campaign.license }}</a></b> license.</p> <p>You are offering your ebook under a <b><a href="{{campaign.license_url }}">{{ campaign.license }}</a></b> license.</p>
{% endifnotequal %} {% endifnotequal %}
<p>Since your campaign is active, you may only change the license to remove restrictions. For more information on the licenses you can use, see <a href="http://creativecommons.org/licenses">Creative Commons: About the Licenses</a>.</p> <p>Since your campaign is active, you may only change the license to remove restrictions. For more information on the licenses you can use, see <a href="https://creativecommons.org/licenses">Creative Commons: About the Licenses</a>.</p>
<div> <div>
{{ form.license.errors }}<span>{{ form.license }}</span> {{ form.license.errors }}<span>{{ form.license }}</span>
</div> </div>

View File

@ -42,7 +42,7 @@ onload = function(){
ISBN: <span itemprop="isbn">{{ edition.isbn_13 }}</span><br /> ISBN: <span itemprop="isbn">{{ edition.isbn_13 }}</span><br />
{% endif %} {% endif %}
{% if edition.oclc %} {% if edition.oclc %}
OCLC: <a href="http://www.worldcat.org/oclc/{{ edition.oclc }}">{{ edition.oclc }}</a><br /> OCLC: <a href="https://www.worldcat.org/oclc/{{ edition.oclc }}">{{ edition.oclc }}</a><br />
{% endif %} {% endif %}
{% include 'edition_upload.html' %} {% include 'edition_upload.html' %}

View File

@ -2,7 +2,7 @@
Your donation of ${{transaction.max_amount|default:"0"}} to the Free Ebook Foundation will help us make free ebooks of all types more accessible for those that need them. The Free Ebook Foundation is a US 501(c)3 non-profit organization. Our tax ID number is 61-1767266. Your gift is tax deductible to the full extent provided by the law. Your donation of ${{transaction.max_amount|default:"0"}} to the Free Ebook Foundation will help us make free ebooks of all types more accessible for those that need them. The Free Ebook Foundation is a US 501(c)3 non-profit organization. Our tax ID number is 61-1767266. Your gift is tax deductible to the full extent provided by the law.
For more information about the Free Ebook Foundation, visit http://ebookfoundation.org/ For more information about the Free Ebook Foundation, visit https://ebookfoundation.org/
Thank you again for your generous support. Thank you again for your generous support.

View File

@ -24,7 +24,7 @@
{% block comments_textual %} {% block comments_textual %}
<p>Your donation of ${{transaction.max_amount|default:"0"}} to the Free Ebook Foundation will help us make free ebooks of all types more accessible for those that need them. The Free Ebook Foundation is a US 501(c)3 non-profit organization. Our tax ID number is 61-1767266. Your gift is tax deductible to the full extent provided by the law.<p> <p>Your donation of ${{transaction.max_amount|default:"0"}} to the Free Ebook Foundation will help us make free ebooks of all types more accessible for those that need them. The Free Ebook Foundation is a US 501(c)3 non-profit organization. Our tax ID number is 61-1767266. Your gift is tax deductible to the full extent provided by the law.<p>
<p>For more information about the Free Ebook Foundation, visit <a href="http://ebookfoundation.org/ ">our website</a>. <p>For more information about the Free Ebook Foundation, visit <a href="https://ebookfoundation.org/ ">our website</a>.
</p> </p>
<p>Thank you again for your support. <p>Thank you again for your support.
</p> </p>

View File

@ -2,7 +2,7 @@ Your Platform Services Agreement has been accepted and you're now an official Un
Here's what to do next. Find your book(s) on Unglue.it. On the More... tab of the book page, you'll now see an option to claim the book. Do this. We'll follow up. Once we've approved your claim, you'll be able to run campaigns for the book. Here's what to do next. Find your book(s) on Unglue.it. On the More... tab of the book page, you'll now see an option to claim the book. Do this. We'll follow up. Once we've approved your claim, you'll be able to run campaigns for the book.
If your book isn't listed in Google Books (which powers our search), you won't be able to find it at Unglue.it. That's okay. You can submit your books for inclusion in Google's search results: http://books.google.com/googlebooks/publishers.html . We can also create a custom page for you; just notify us. If your book isn't listed in Google Books (which powers our search), you won't be able to find it at Unglue.it. That's okay. You can submit your books for inclusion in Google's search results: https://books.google.com/googlebooks/publishers.html . We can also create a custom page for you; just notify us.
You can also start thinking ahead about what you'd like your campaigns to look like and how you'd like to publicize them. Some good things to brainstorm: your campaign pitch; any photos or video you can include; compelling premiums you might be able to offer; what you want your target to be and how long you think your campaign should last; and how to share your campaign with your social networks (online and off) and media contacts. You can also start thinking ahead about what you'd like your campaigns to look like and how you'd like to publicize them. Some good things to brainstorm: your campaign pitch; any photos or video you can include; compelling premiums you might be able to offer; what you want your target to be and how long you think your campaign should last; and how to share your campaign with your social networks (online and off) and media contacts.

View File

@ -12,11 +12,11 @@
{% block comments_textual %} {% block comments_textual %}
{% ifequal campaign.type 1 %} {% ifequal campaign.type 1 %}
<div>Congratulations! You wished for a campaign, and here it is. If ungluers like you pledge {{ campaign.target|intcomma }} by {{ campaign.deadline|date:"M d, Y" }}, <I>{{ campaign.work.title }}</i> will be released under a <a href="http://creativecommons.org">Creative Commons</a> license for all to enjoy.</div> <div>Congratulations! You wished for a campaign, and here it is. If ungluers like you pledge {{ campaign.target|intcomma }} by {{ campaign.deadline|date:"M d, Y" }}, <I>{{ campaign.work.title }}</i> will be released under a <a href="https://creativecommons.org">Creative Commons</a> license for all to enjoy.</div>
<div>You can help! <a href="{% url 'pledge' campaign.work.id %}">Pledge</a> any amount, and use the sharing options on the <a href="{% url 'work' campaign.work.id %}">campaign page</a> to tell your friends.</a></div> <div>You can help! <a href="{% url 'pledge' campaign.work.id %}">Pledge</a> any amount, and use the sharing options on the <a href="{% url 'work' campaign.work.id %}">campaign page</a> to tell your friends.</a></div>
{% endifequal %} {% endifequal %}
{% ifequal campaign.type 2 %} {% ifequal campaign.type 2 %}
<div>Great! You wished for a campaign, and here it is. Someday, the book will be released under a <a href="http://creativecommons.org">Creative Commons license</a> for everyone to enjoy. Every copy purchased brings that day {{ campaign.days_per_copy|floatformat }} days sooner.</div> <div>Great! You wished for a campaign, and here it is. Someday, the book will be released under a <a href="https://creativecommons.org">Creative Commons license</a> for everyone to enjoy. Every copy purchased brings that day {{ campaign.days_per_copy|floatformat }} days sooner.</div>
<div>You can help! <a href="{% url 'purchase' campaign.work.id %}">Purchase</a> a copy, and use the sharing options on the <a href="{% url 'work' campaign.work.id %}">campaign page</a> to tell your friends.</a></div> <div>You can help! <a href="{% url 'purchase' campaign.work.id %}">Purchase</a> a copy, and use the sharing options on the <a href="{% url 'work' campaign.work.id %}">campaign page</a> to tell your friends.</a></div>
{% endifequal %} {% endifequal %}
{% ifequal campaign.type 3 %} {% ifequal campaign.type 3 %}

View File

@ -20,7 +20,7 @@ URL: {{ ebook.download_url }}
{% if work.ebooks.0.rights == 'PD-US' %} {% if work.ebooks.0.rights == 'PD-US' %}
A public domain ebook belongs to all of us. You can do anything you like with it. A public domain ebook belongs to all of us. You can do anything you like with it.
{% else %} {% else %}
The Creative Commons licensing terms for {{ work.title }} allow you to redistribute the files under the specified license terms. There's no DRM. For full details, see http://creativecommons.org/licenses/. The Creative Commons licensing terms for {{ work.title }} allow you to redistribute the files under the specified license terms. There's no DRM. For full details, see https://creativecommons.org/licenses/.
{% endif %} {% endif %}
{% if work.last_campaign_status == 'SUCCESSFUL' %} {% if work.last_campaign_status == 'SUCCESSFUL' %}

View File

@ -29,7 +29,7 @@
<h2 class="thank-you">Thank you!</h2> <h2 class="thank-you">Thank you!</h2>
{% if not campaign %} {% if not campaign %}
<p class="pledge_complete">You've just donated ${{ transaction.amount|floatformat:2|intcomma }} to the <a href="http://ebookfoundation.org">Free Ebook Foundation</a></p> <p class="pledge_complete">You've just donated ${{ transaction.amount|floatformat:2|intcomma }} to the <a href="https://ebookfoundation.org">Free Ebook Foundation</a></p>
{% endif %} {% endif %}
{% ifequal campaign.type 1 %} {% ifequal campaign.type 1 %}
<p class="pledge_complete">You've just {% if modified %}modified your pledge for{% else %}pledged{% endif %} ${{ transaction.amount|floatformat:2|intcomma }} to <I><a href="{% url 'work' work.id %}">{{ work.title }}</a></I>. If it reaches its goal of ${{ campaign.target|intcomma }} by {{ campaign.deadline|date:"M d Y"}}, it will be unglued for all to enjoy.</p> <p class="pledge_complete">You've just {% if modified %}modified your pledge for{% else %}pledged{% endif %} ${{ transaction.amount|floatformat:2|intcomma }} to <I><a href="{% url 'work' work.id %}">{{ work.title }}</a></I>. If it reaches its goal of ${{ campaign.target|intcomma }} by {{ campaign.deadline|date:"M d Y"}}, it will be unglued for all to enjoy.</p>
@ -74,8 +74,8 @@
{% else %} {% else %}
<ul class="social menu pledge"> <ul class="social menu pledge">
<a href="https://www.facebook.com/sharer.php?u=http://ebookfoundation.org"><li class="facebook first"><span>Facebook</span></li></a> <a href="https://www.facebook.com/sharer.php?u=https://ebookfoundation.org"><li class="facebook first"><span>Facebook</span></li></a>
<a href="https://twitter.com/intent/tweet?url=http://ebookfoundation.org&amp;text=I%20just%20supported%20The%20Free%20Ebook%20Foundation.%20Will%20you%20join%20me%3F"><li class="twitter"><span>Twitter</span></li></a> <a href="https://twitter.com/intent/tweet?url=https://ebookfoundation.org&amp;text=I%20just%20supported%20The%20Free%20Ebook%20Foundation.%20Will%20you%20join%20me%3F"><li class="twitter"><span>Twitter</span></li></a>
</ul> </ul>
{% endif %} {% endif %}
</div> </div>

View File

@ -60,10 +60,10 @@ When books have a clear, established legal license which promotes use, they can
<dt>Where?</dt> <dt>Where?</dt>
<dd>The Free Ebook Foundation is a New Jersey non-for-profit corporation, but its employees and contractors live and work across North America. The best way to contact us is by email, <a href="mailto:press@gluejar.com">freeebookfoundation@gmail.com</a>.</dd> <dd>The Free Ebook Foundation is a New Jersey non-for-profit corporation, but its employees and contractors live and work across North America. The best way to contact us is by email, <a href="mailto:press@gluejar.com">freeebookfoundation@gmail.com</a>.</dd>
<dt>What's your technology?</dt> <dt>What's your technology?</dt>
<dd>Unglue.it is built using <a href="http://python.org/">Python</a> and the <a href="https://www.djangoproject.com/">Django framework</a>. We use data from the <a href="http://code.google.com/apis/books/docs/v1/getting_started.html">Google Books</a>, <a href="http://openlibrary.org/developers/api">Open Library</a>, <a href="http://www.librarything.com/api">LibraryThing</a>, and <a href="http://www.goodreads.com/api">GoodReads</a> APIs; we appreciate that they've made these APIs available, and we're returning the favor with <a href="/api/help">our own API</a>. You're welcome to use it. We use <a href="http://lesscss.org/">Less</a> to organize our CSS. We process pledges with <a href="https://stripe.com/">Stripe</a>. We collaborate on our code at <a href="https://github.com/">GitHub</a> and deploy to the cloud with <a href="http://aws.amazon.com/ec2/">Amazon EC2</a>.</dd> <dd>Unglue.it is built using <a href="http://python.org/">Python</a> and the <a href="https://www.djangoproject.com/">Django framework</a>. We use data from the <a href="https://code.google.com/apis/books/docs/v1/getting_started.html">Google Books</a>, <a href="https://openlibrary.org/developers/api">Open Library</a>, <a href="https://www.librarything.com/api">LibraryThing</a>, and <a href="https://www.goodreads.com/api">GoodReads</a> APIs; we appreciate that they've made these APIs available, and we're returning the favor with <a href="/api/help">our own API</a>. You're welcome to use it. We use <a href="http://lesscss.org/">Less</a> to organize our CSS. We process pledges with <a href="https://stripe.com/">Stripe</a>. We collaborate on our code at <a href="https://github.com/">GitHub</a> and deploy to the cloud with <a href="https://aws.amazon.com/ec2/">Amazon EC2</a>.</dd>
<dt>What licenses are supported? </dt> <dt>What licenses are supported? </dt>
<dd> <dd>
We support the <a href="http://creativecommons.org/licenses/">Creative Commons</a> licenses in all of our programs. Ebooks with these licenses are free and legal for everyone to read, copy, and share worldwide and requires that the author attribution.<br /><br /> We support the <a href="https://creativecommons.org/licenses/">Creative Commons</a> licenses in all of our programs. Ebooks with these licenses are free and legal for everyone to read, copy, and share worldwide and requires that the author attribution.<br /><br />
We support a additional Free Licenses in our Thanks-for-Ungluing program. We support a additional Free Licenses in our Thanks-for-Ungluing program.
</dd> </dd>
@ -110,7 +110,7 @@ We support a additional Free Licenses in our Thanks-for-Ungluing program.
<div> <div>
<iframe width="480" height="274" src="//www.youtube-nocookie.com/embed/YNGPCR-iM24?rel=0" frameborder="0" allowfullscreen></iframe><br /> <iframe width="480" height="274" src="//www.youtube-nocookie.com/embed/YNGPCR-iM24?rel=0" frameborder="0" allowfullscreen></iframe><br />
<I>November 2011</I><br /> <I>November 2011</I><br />
Eric Hellman, "The Network is Overrated"; talk at <a href="http://bib.archive.org/">Books in Browsers</a> 2011. Eric Hellman, "The Network is Overrated"; talk at <a href="https://bib.archive.org/">Books in Browsers</a> 2011.
</div> </div>
</div> </div>

View File

@ -70,11 +70,11 @@ We use <a href=" http://w3c.github.io/webappsec/specs/referrer-policy">referrer
<ul class="bullets"> <ul class="bullets">
<li> <li>
We use <a href="http://www.google.com/analytics/">Google Analytics</a>. If you believe their <a href="http://www.google.com/analytics/terms/us.html">terms of service</a>, they can't share this data outside Google. But Google is fundamentally an advertising company, and it's very likely that Google knows exactly who you are. We use <a href="https://www.google.com/analytics/">Google Analytics</a>. If you believe their <a href="https://www.google.com/analytics/terms/us.html">terms of service</a>, they can't share this data outside Google. But Google is fundamentally an advertising company, and it's very likely that Google knows exactly who you are.
</li> </li>
<li> <li>
We use cover images from <a href="http://books.google.com/">Google Books</a>. We don't really know if Google Books does much with the data they receive as a result. Google isn't learning anything they don't already know from analytics, but the <a href="http://books.google.com/intl/en/googlebooks/privacy.html">Google Books Privacy Policy</a> is interesting reading for privacy wonks. We use cover images from <a href="https://books.google.com/">Google Books</a>. We don't really know if Google Books does much with the data they receive as a result. Google isn't learning anything they don't already know from analytics, but the <a href="https://books.google.com/intl/en/googlebooks/privacy.html">Google Books Privacy Policy</a> is interesting reading for privacy wonks.
</li> </li>
<li> <li>
@ -94,7 +94,7 @@ When you download an ebook via Unglue.it, it usually comes from a third party. W
<ul class="bullets"> <ul class="bullets">
<li><a href="https://archive.org/about/terms.php">Internet Archive</a> (Excellent privacy!) </li> <li><a href="https://archive.org/about/terms.php">Internet Archive</a> (Excellent privacy!) </li>
<li><a href="http://www.gutenberg.org/wiki/Gutenberg:Privacy_policy">Project Gutenberg</a> (insecure) </li> <li><a href="https://www.gutenberg.org/wiki/Gutenberg:Privacy_policy">Project Gutenberg</a> (insecure) </li>
<li><a href="http://www.oapen.org/about">OAPEN</a> (no privacy policy, insecure) </li> <li><a href="http://www.oapen.org/about">OAPEN</a> (no privacy policy, insecure) </li>
<li><a href="http://www.hathitrust.org/privacy">Hathitrust</a> (insecure) </li> <li><a href="http://www.hathitrust.org/privacy">Hathitrust</a> (insecure) </li>
<li><a href="https://help.github.com/articles/github-privacy-policy/">Github</a> </li> <li><a href="https://help.github.com/articles/github-privacy-policy/">Github</a> </li>
@ -115,7 +115,7 @@ We have used a small number of third party services that do not set cookies to t
<ul class="bullets"> <ul class="bullets">
<li> <li>
We've worked to pare this list down to one. <a href="http://aws.amazon.com/s3/">Amazon S3</a>. We disable logging for our S3 buckets, but we're not aware of any privacy commitment by Amazon Web Services regarding their logging practices for S3 (Simple Storage Service) separate from the Amazon privacy policies. But we can verify that S3 sets no tracking cookies. We've worked to pare this list down to one. <a href="https://aws.amazon.com/s3/">Amazon S3</a>. We disable logging for our S3 buckets, but we're not aware of any privacy commitment by Amazon Web Services regarding their logging practices for S3 (Simple Storage Service) separate from the Amazon privacy policies. But we can verify that S3 sets no tracking cookies.
</li> </li>
</ul> </ul>

View File

@ -150,7 +150,7 @@ function highlightTarget(targetdiv) {
</a> </a>
{% endif %} {% endif %}
{% if supporter.profile.librarything_id %} {% if supporter.profile.librarything_id %}
<a href="http://www.librarything.com/profile/{{ supporter.profile.librarything_id }}" class="nounderline"> <a href="https://www.librarything.com/profile/{{ supporter.profile.librarything_id }}" class="nounderline">
<img src="/static/images/supporter_icons/librarything_square.png" alt="{{ supporter }}'s profile on LibraryThing" title="{{ supporter }}'s page on LibraryThing" /> <img src="/static/images/supporter_icons/librarything_square.png" alt="{{ supporter }}'s profile on LibraryThing" title="{{ supporter }}'s page on LibraryThing" />
</a> </a>
{% endif %} {% endif %}

View File

@ -214,7 +214,7 @@
<a id="find-google" href="{{ work.googlebooks_url }}"><img src="/static/images/supporter_icons/googlebooks_square.png" title="Find on Google Books" alt="Find on Google Books" /></a> <a id="find-google" href="{{ work.googlebooks_url }}"><img src="/static/images/supporter_icons/googlebooks_square.png" title="Find on Google Books" alt="Find on Google Books" /></a>
{% endif %} {% endif %}
{% if work.first_oclc %} {% if work.first_oclc %}
<a rel="nofollow" id="find-oclc" href="http://www.worldcat.org/oclc/{{ work.first_oclc }}"><img src="/static/images/supporter_icons/worldcat_square.png" title="Find on Worldcat" alt="Find on Worldcat" /></a> <a rel="nofollow" id="find-oclc" href="https://www.worldcat.org/oclc/{{ work.first_oclc }}"><img src="/static/images/supporter_icons/worldcat_square.png" title="Find on Worldcat" alt="Find on Worldcat" /></a>
{% endif %} {% endif %}
<a rel="nofollow" class="find-openlibrary" href="{% url 'work_openlibrary' work_id %}"><img src="/static/images/supporter_icons/openlibrary_square.png" title="Find on OpenLibrary" alt="Find on OpenLibrary" /></a> <a rel="nofollow" class="find-openlibrary" href="{% url 'work_openlibrary' work_id %}"><img src="/static/images/supporter_icons/openlibrary_square.png" title="Find on OpenLibrary" alt="Find on OpenLibrary" /></a>
<a rel="nofollow" class="find-goodreads" href="{% url 'work_goodreads' work_id %}"><img src="/static/images/supporter_icons/goodreads_square.png" title="Find on GoodReads" alt="Find on GoodReads" /></a> <a rel="nofollow" class="find-goodreads" href="{% url 'work_goodreads' work_id %}"><img src="/static/images/supporter_icons/goodreads_square.png" title="Find on GoodReads" alt="Find on GoodReads" /></a>

View File

@ -223,7 +223,7 @@ class PledgingUiTests(TestCase):
# login and heck whether user logged in # login and heck whether user logged in
self.assertTrue(self.client.login(username=self.USERNAME, password=self.PASSWORD)) self.assertTrue(self.client.login(username=self.USERNAME, password=self.PASSWORD))
# http://stackoverflow.com/a/6013115 # https://stackoverflow.com/a/6013115
#self.assertEqual(self.client.session['_auth_user_id'], self.user.pk) #self.assertEqual(self.client.session['_auth_user_id'], self.user.pk)
user = auth.get_user(self.client) user = auth.get_user(self.client)

View File

@ -2577,11 +2577,11 @@ def work_librarything(request, work_id):
url = work.librarything_url url = work.librarything_url
elif isbn: elif isbn:
# TODO: do the redirect here and capture the work id? # TODO: do the redirect here and capture the work id?
url = "http://www.librarything.com/isbn/%s" % isbn url = "https://www.librarything.com/isbn/%s" % isbn
else: else:
term = work.title + " " + work.author() term = work.title + " " + work.author()
q = urlencode({'searchtpe': 'work', 'term': term}) q = urlencode({'searchtpe': 'work', 'term': term})
url = "http://www.librarything.com/search.php?" + q url = "https://www.librarything.com/search.php?" + q
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
def work_openlibrary(request, work_id): def work_openlibrary(request, work_id):
@ -2593,20 +2593,20 @@ def work_openlibrary(request, work_id):
url = work.openlibrary_url url = work.openlibrary_url
elif len(isbns) > 0: elif len(isbns) > 0:
isbns = ",".join(isbns) isbns = ",".join(isbns)
u = 'http://openlibrary.org/api/books?bibkeys=%s&jscmd=data&format=json' % isbns u = 'https://openlibrary.org/api/books?bibkeys=%s&jscmd=data&format=json' % isbns
try: try:
j = json.loads(requests.get(u).content) j = json.loads(requests.get(u).content)
# as long as there were some matches get the first one and route to it # as long as there were some matches get the first one and route to it
if len(j.keys()) > 0: if len(j.keys()) > 0:
first = j.keys()[0] first = j.keys()[0]
url = "http://openlibrary.org" + j[first]['key'] url = "https://openlibrary.org" + j[first]['key']
except ValueError: except ValueError:
# fail at openlibrary # fail at openlibrary
logger.warning("failed to get OpenLibrary json at %s" % u) logger.warning("failed to get OpenLibrary json at %s" % u)
# fall back to doing a search on openlibrary # fall back to doing a search on openlibrary
if not url: if not url:
q = urlencode({'q': work.title + " " + work.author()}) q = urlencode({'q': work.title + " " + work.author()})
url = "http://openlibrary.org/search?" + q url = "https://openlibrary.org/search?" + q
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
def work_goodreads(request, work_id): def work_goodreads(request, work_id):
@ -2615,10 +2615,10 @@ def work_goodreads(request, work_id):
if work.goodreads_id: if work.goodreads_id:
url = work.goodreads_url url = work.goodreads_url
elif isbn: elif isbn:
url = "http://www.goodreads.com/book/isbn/%s" % isbn url = "https://www.goodreads.com/book/isbn/%s" % isbn
else: else:
q = urlencode({'query': work.title + " " + work.author()}) q = urlencode({'query': work.title + " " + work.author()})
url = "http://www.goodreads.com/search?" + q url = "https://www.goodreads.com/search?" + q
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
@login_required @login_required
@ -3219,10 +3219,10 @@ def send_to_kindle(request, work_id, javascript='0'):
""" """
Amazon SES has a 10 MB size limit (http://aws.amazon.com/ses/faqs/#49) in messages sent Amazon SES has a 10 MB size limit (https://aws.amazon.com/ses/faqs/#49) in messages sent
to determine whether the file will meet this limit, we probably need to compare the to determine whether the file will meet this limit, we probably need to compare the
size of the mime-encoded file to 10 MB. (and it's unclear exactly what the Amazon FAQ means precisely by size of the mime-encoded file to 10 MB. (and it's unclear exactly what the Amazon FAQ means precisely by
MB either: http://en.wikipedia.org/wiki/Megabyte) http://www.velocityreviews.com/forums/t335208-how-to-get-size-of-email-attachment.html might help MB either: https://en.wikipedia.org/wiki/Megabyte) http://www.velocityreviews.com/forums/t335208-how-to-get-size-of-email-attachment.html might help
for the moment, we will hardwire a 749229 limit in filesize: for the moment, we will hardwire a 749229 limit in filesize:
* assume conservative size of megabyte, 1000000B * assume conservative size of megabyte, 1000000B

View File

@ -83,7 +83,7 @@ def selective_social_user(backend, uid, user=None, *args, **kwargs):
'is_new': user is None, 'is_new': user is None,
'new_association': False} 'new_association': False}
# http://stackoverflow.com/a/19361220 # https://stackoverflow.com/a/19361220
# adapting https://github.com/omab/python-social-auth/blob/v0.2.10/social/apps/django_app/middleware.py#L25 # adapting https://github.com/omab/python-social-auth/blob/v0.2.10/social/apps/django_app/middleware.py#L25
class SocialAuthExceptionMiddlewareWithoutMessages(SocialAuthExceptionMiddleware): class SocialAuthExceptionMiddlewareWithoutMessages(SocialAuthExceptionMiddleware):

View File

@ -235,7 +235,7 @@ class Block(models.Model):
ordering = ['lower',] ordering = ['lower',]
# from http://en.wikipedia.org/wiki/Luhn_algorithm#Implementation_of_standard_Mod_10 # from https://en.wikipedia.org/wiki/Luhn_algorithm#Implementation_of_standard_Mod_10
def luhn_checksum(card_number): def luhn_checksum(card_number):
def digits_of(n): def digits_of(n):
return [int(d) for d in str(n)] return [int(d) for d in str(n)]

View File

@ -2,4 +2,4 @@
<br /><br /> <br /><br />
Lower: <code>24.0.0.1</code> Upper: <code>24.0.0.255</code> Lower: <code>24.0.0.1</code> Upper: <code>24.0.0.255</code>
<br /><br /> <br /><br />
Don't use "loopback" addresses like 127.0.0.1, or the <a href="http://en.wikipedia.org/wiki/Private_network">private network blocks</a>: 10.0.0.0 - 10.255.255.255, 172.16.0.0 - 172.31.255.255, 192.168.0.0 - 192.168.255.255. </p> Don't use "loopback" addresses like 127.0.0.1, or the <a href="https://en.wikipedia.org/wiki/Private_network">private network blocks</a>: 10.0.0.0 - 10.255.255.255, 172.16.0.0 - 172.31.255.255, 192.168.0.0 - 192.168.255.255. </p>

View File

@ -19,7 +19,7 @@ from django.contrib.auth.models import User
# create Credit to associate with User # create Credit to associate with User
def create_user_objects(sender, created, instance, **kwargs): def create_user_objects(sender, created, instance, **kwargs):
# use get_model to avoid circular import problem with models # use get_model to avoid circular import problem with models
# don't create Credit if we are loading fixtures http://stackoverflow.com/a/3500009/7782 # don't create Credit if we are loading fixtures https://stackoverflow.com/a/3500009/7782
if not kwargs.get('raw', False): if not kwargs.get('raw', False):
try: try:
Credit = apps.get_model('payment', 'Credit') Credit = apps.get_model('payment', 'Credit')

View File

@ -57,7 +57,7 @@ STRIPE_EVENT_TYPES = ['account.updated', 'account.application.deauthorized', 'ba
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
# http://stackoverflow.com/questions/2348317/how-to-write-a-pager-for-python-iterators/2350904#2350904 # https://stackoverflow.com/questions/2348317/how-to-write-a-pager-for-python-iterators/2350904#2350904
def grouper(iterable, page_size): def grouper(iterable, page_size):
page= [] page= []
for item in iterable: for item in iterable:
@ -155,7 +155,7 @@ def filter_none(d):
# if you create a Customer object, then you'll be able to charge multiple times. You can create a customer with a token. # if you create a Customer object, then you'll be able to charge multiple times. You can create a customer with a token.
# http://en.wikipedia.org/wiki/Luhn_algorithm#Implementation_of_standard_Mod_10 # https://en.wikipedia.org/wiki/Luhn_algorithm#Implementation_of_standard_Mod_10
def luhn_checksum(card_number): def luhn_checksum(card_number):
def digits_of(n): def digits_of(n):

View File

@ -75,7 +75,7 @@ def route53_records(domain_name, name, record_type):
def modify_rds_parameter(group_name, parameter, value, apply_immediate=False): def modify_rds_parameter(group_name, parameter, value, apply_immediate=False):
"""change parameter in RDS parameter group_name to value """change parameter in RDS parameter group_name to value
http://stackoverflow.com/a/9085381/7782 https://stackoverflow.com/a/9085381/7782
Remember to make sure that the parameter group is actually associated with the db. Remember to make sure that the parameter group is actually associated with the db.
You will likely need to reboot db too. You will likely need to reboot db too.
""" """

View File

@ -211,7 +211,7 @@ def test_relaunch(unglue_it_url = settings.LIVE_SERVER_TEST_URL, do_local=True,
# click on biggest campaign list # click on biggest campaign list
# I have no idea why selenium thinks a is not displayed....so that's why I'm going up one element. # I have no idea why selenium thinks a is not displayed....so that's why I'm going up one element.
# http://stackoverflow.com/a/6141678/7782 # https://stackoverflow.com/a/6141678/7782
#biggest_campaign_link = WebDriverWait(sel,20).until(lambda d: d.find_element_by_css_selector("li > a[href*='/campaigns/ending']")) #biggest_campaign_link = WebDriverWait(sel,20).until(lambda d: d.find_element_by_css_selector("li > a[href*='/campaigns/ending']"))
#biggest_campaign_link.click() #biggest_campaign_link.click()
#time.sleep(1) #time.sleep(1)

View File

@ -10,7 +10,7 @@ contributor:
deathdate: 1933 deathdate: 1933
gutenberg_agent_id: '37155' gutenberg_agent_id: '37155'
url: http://www.gutenberg.org/2009/agents/37155 url: http://www.gutenberg.org/2009/agents/37155
wikipedia: http://en.wikipedia.org/wiki/E._W._Kemble wikipedia: https://en.wikipedia.org/wiki/E._W._Kemble
edition_list: edition_list:
- -
_edition: rtc_isbn _edition: rtc_isbn
@ -32,8 +32,8 @@ creator:
deathdate: 1910 deathdate: 1910
gutenberg_agent_id: '53' gutenberg_agent_id: '53'
url: http://www.gutenberg.org/2009/agents/53 url: http://www.gutenberg.org/2009/agents/53
wikipedia: http://en.wikipedia.org/wiki/Mark_Twain wikipedia: https://en.wikipedia.org/wiki/Mark_Twain
description: 'Wikipedia: http://en.wikipedia.org/wiki/Adventures_of_Huckleberry_Finn' description: 'Wikipedia: https://en.wikipedia.org/wiki/Adventures_of_Huckleberry_Finn'
gutenberg_bookshelf: gutenberg_bookshelf:
- Banned Books from Anne Haight's list - Banned Books from Anne Haight's list
- Best Books Ever Listings - Best Books Ever Listings
@ -45,7 +45,7 @@ language: en
publication_date: 2015-08-01 publication_date: 2015-08-01
publisher: Project Gutenberg publisher: Project Gutenberg
rights: PD-US rights: PD-US
rights_url: http://creativecommons.org/licenses/by-nc/4.0/ rights_url: https://creativecommons.org/licenses/by-nc/4.0/
subjects: subjects:
- !lcsh Male friendship -- Fiction - !lcsh Male friendship -- Fiction
- !lcsh Fugitive slaves -- Fiction - !lcsh Fugitive slaves -- Fiction

View File

@ -5,7 +5,7 @@ contributor:
gutenberg_agent_id: 25396 gutenberg_agent_id: 25396
agent_name: John Schoenherr agent_name: John Schoenherr
agent_sortname: Schoenherr, John agent_sortname: Schoenherr, John
wikipedia: http://en.wikipedia.org/wiki/John_Schoenherr wikipedia: https://en.wikipedia.org/wiki/John_Schoenherr
covers: covers:
- -
image_path: 20728-h/images/illus-front.jpg image_path: 20728-h/images/illus-front.jpg
@ -18,7 +18,7 @@ creator:
gutenberg_agent_id: 8301 gutenberg_agent_id: 8301
agent_name: H. Beam Piper agent_name: H. Beam Piper
agent_sortname: Piper, H. Beam agent_sortname: Piper, H. Beam
wikipedia: http://en.wikipedia.org/wiki/H._Beam_Piper wikipedia: https://en.wikipedia.org/wiki/H._Beam_Piper
description: description:
funding_info: funding_info:
identifiers: identifiers:

View File

@ -3,7 +3,7 @@ import sys
import unicodedata import unicodedata
#http://stackoverflow.com/questions/1707890/fast-way-to-filter-illegal-xml-unicode-chars-in-python #https://stackoverflow.com/questions/1707890/fast-way-to-filter-illegal-xml-unicode-chars-in-python
_illegal_unichrs = [(0x00, 0x08), (0x0B, 0x0C), (0x0E, 0x1F), _illegal_unichrs = [(0x00, 0x08), (0x0B, 0x0C), (0x0E, 0x1F),
(0x7F, 0x84), (0x86, 0x9F), (0x7F, 0x84), (0x86, 0x9F),
(0xFDD0, 0xFDDF), (0xFFFE, 0xFFFF)] (0xFDD0, 0xFDDF), (0xFFFE, 0xFFFF)]

4
vagrant/Vagrantfile vendored
View File

@ -37,8 +37,8 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
end end
# 512MB not enough for compiling lxml: http://stackoverflow.com/a/25916353/7782 # 512MB not enough for compiling lxml: https://stackoverflow.com/a/25916353/7782
# http://stackoverflow.com/a/26468913/7782 --> for how to get to this setting # https://stackoverflow.com/a/26468913/7782 --> for how to get to this setting
node.vm.provider "virtualbox" do |v| node.vm.provider "virtualbox" do |v|
v.memory = 1024 v.memory = 1024
v.cpus = 2 v.cpus = 2

View File

@ -156,7 +156,7 @@
# installing mysql # installing mysql
# https://github.com/bennojoy/mysql --> probably the right way # https://github.com/bennojoy/mysql --> probably the right way
# how do you make use of other people's playbooks in the right way? # how do you make use of other people's playbooks in the right way?
# http://stackoverflow.com/a/7740571/7782 # https://stackoverflow.com/a/7740571/7782
- name: mysql setup - name: mysql setup
raw: debconf-set-selections <<< 'mysql-server-5.5 mysql-server/root_password password {{mysql_root_pw}}' raw: debconf-set-selections <<< 'mysql-server-5.5 mysql-server/root_password password {{mysql_root_pw}}'
@ -190,8 +190,8 @@
# running stuff within a virtualenv # running stuff within a virtualenv
# http://stackoverflow.com/a/20572360 # https://stackoverflow.com/a/20572360
# http://stackoverflow.com/questions/20575084/best-way-to-always-run-ansible-inside-a-virtualenv-on-remote-machines?rq=1 # https://stackoverflow.com/questions/20575084/best-way-to-always-run-ansible-inside-a-virtualenv-on-remote-machines?rq=1
#sudo("ln -s /opt/regluit/deploy/please.conf /etc/apache2/sites-available/please") #sudo("ln -s /opt/regluit/deploy/please.conf /etc/apache2/sites-available/please")
@ -276,7 +276,7 @@
#Run syncdb on the application #Run syncdb on the application
# TO DO: syncdb might be deprecated # TO DO: syncdb might be deprecated
# http://stackoverflow.com/a/29683785 # https://stackoverflow.com/a/29683785
- name: django syncdb - name: django syncdb
django_manage: > django_manage: >

View File

@ -103,7 +103,7 @@
## installing mysql ## installing mysql
## https://github.com/bennojoy/mysql --> probably the right way ## https://github.com/bennojoy/mysql --> probably the right way
## how do you make use of other people's playbooks in the right way? ## how do you make use of other people's playbooks in the right way?
## http://stackoverflow.com/a/7740571/7782 ## https://stackoverflow.com/a/7740571/7782
# #
#- name: mysql setup #- name: mysql setup
# raw: debconf-set-selections <<< 'mysql-server-5.5 mysql-server/root_password password {{mysql_root_pw}}' # raw: debconf-set-selections <<< 'mysql-server-5.5 mysql-server/root_password password {{mysql_root_pw}}'
@ -126,8 +126,8 @@
# running stuff within a virtualenv # running stuff within a virtualenv
# http://stackoverflow.com/a/20572360 # https://stackoverflow.com/a/20572360
# http://stackoverflow.com/questions/20575084/best-way-to-always-run-ansible-inside-a-virtualenv-on-remote-machines?rq=1 # https://stackoverflow.com/questions/20575084/best-way-to-always-run-ansible-inside-a-virtualenv-on-remote-machines?rq=1
## hard coding of just ## hard coding of just

View File

@ -22,13 +22,13 @@
# installing mysql # installing mysql
# https://github.com/bennojoy/mysql --> probably the right way # https://github.com/bennojoy/mysql --> probably the right way
# how do you make use of other people's playbooks in the right way? # how do you make use of other people's playbooks in the right way?
# http://stackoverflow.com/a/7740571/7782 # https://stackoverflow.com/a/7740571/7782
post_tasks: post_tasks:
# running stuff within a virtualenv # running stuff within a virtualenv
# http://stackoverflow.com/a/20572360 # https://stackoverflow.com/a/20572360
# http://stackoverflow.com/questions/20575084/best-way-to-always-run-ansible-inside-a-virtualenv-on-remote-machines?rq=1 # https://stackoverflow.com/questions/20575084/best-way-to-always-run-ansible-inside-a-virtualenv-on-remote-machines?rq=1
## hard coding of {{config_name}} ## hard coding of {{config_name}}

View File

@ -129,7 +129,7 @@
# installing mysql # installing mysql
# https://github.com/bennojoy/mysql --> probably the right way # https://github.com/bennojoy/mysql --> probably the right way
# how do you make use of other people's playbooks in the right way? # how do you make use of other people's playbooks in the right way?
# http://stackoverflow.com/a/7740571/7782 # https://stackoverflow.com/a/7740571/7782
- name: mysql setup - name: mysql setup
raw: debconf-set-selections <<< 'mysql-server-5.5 mysql-server/root_password password {{mysql_root_pw}}' raw: debconf-set-selections <<< 'mysql-server-5.5 mysql-server/root_password password {{mysql_root_pw}}'
@ -158,8 +158,8 @@
# running stuff within a virtualenv # running stuff within a virtualenv
# http://stackoverflow.com/a/20572360 # https://stackoverflow.com/a/20572360
# http://stackoverflow.com/questions/20575084/best-way-to-always-run-ansible-inside-a-virtualenv-on-remote-machines?rq=1 # https://stackoverflow.com/questions/20575084/best-way-to-always-run-ansible-inside-a-virtualenv-on-remote-machines?rq=1
## hard coding of please ## hard coding of please

View File

@ -103,7 +103,7 @@
# installing mysql # installing mysql
# https://github.com/bennojoy/mysql --> probably the right way # https://github.com/bennojoy/mysql --> probably the right way
# how do you make use of other people's playbooks in the right way? # how do you make use of other people's playbooks in the right way?
# http://stackoverflow.com/a/7740571/7782 # https://stackoverflow.com/a/7740571/7782
- name: mysql setup - name: mysql setup
raw: debconf-set-selections <<< 'mysql-server-5.5 mysql-server/root_password password {{mysql_root_pw}}' raw: debconf-set-selections <<< 'mysql-server-5.5 mysql-server/root_password password {{mysql_root_pw}}'
@ -126,8 +126,8 @@
# running stuff within a virtualenv # running stuff within a virtualenv
# http://stackoverflow.com/a/20572360 # https://stackoverflow.com/a/20572360
# http://stackoverflow.com/questions/20575084/best-way-to-always-run-ansible-inside-a-virtualenv-on-remote-machines?rq=1 # https://stackoverflow.com/questions/20575084/best-way-to-always-run-ansible-inside-a-virtualenv-on-remote-machines?rq=1
## hard coding of please ## hard coding of please