/[smecontribs]/rpms/dl/contribs10/dl-0.18.1-pre0.19changes20210316.patch
ViewVC logotype

Annotation of /rpms/dl/contribs10/dl-0.18.1-pre0.19changes20210316.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (hide annotations) (download)
Sun Apr 18 16:17:11 2021 UTC (3 years, 6 months ago) by jpp
Branch: MAIN
CVS Tags: dl-0_18_1-3_el7_sme, dl-0_18_1-2_el7_sme, dl-0_18_1-4_el7_sme, HEAD
* Sun Apr 18 2021 Jean-Philippe Pialasse <tests@pialasse.com> 0.18.1-2.sme
- first build for SME10 [SME: 11565]
- patch with git update up to pre 0.19 release as per 20210316

1 jpp 1.1 diff -Nur dl-0.18.1/AUTHORS.html dl-master/AUTHORS.html
2     --- dl-0.18.1/AUTHORS.html 2017-09-06 12:09:38.000000000 -0400
3     +++ dl-master/AUTHORS.html 1969-12-31 19:00:00.000000000 -0500
4     @@ -1,467 +0,0 @@
5     -<?xml version="1.0" encoding="utf-8" ?>
6     -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
7     -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
8     -<head>
9     -<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10     -<meta name="generator" content="Docutils 0.13.1: http://docutils.sourceforge.net/" />
11     -<title></title>
12     -<style type="text/css">
13     -
14     -/*
15     -:Author: David Goodger (goodger@python.org)
16     -:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
17     -:Copyright: This stylesheet has been placed in the public domain.
18     -
19     -Default cascading style sheet for the HTML output of Docutils.
20     -
21     -See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
22     -customize this style sheet.
23     -*/
24     -
25     -/* used to remove borders from tables and images */
26     -.borderless, table.borderless td, table.borderless th {
27     - border: 0 }
28     -
29     -table.borderless td, table.borderless th {
30     - /* Override padding for "table.docutils td" with "! important".
31     - The right padding separates the table cells. */
32     - padding: 0 0.5em 0 0 ! important }
33     -
34     -.first {
35     - /* Override more specific margin styles with "! important". */
36     - margin-top: 0 ! important }
37     -
38     -.last, .with-subtitle {
39     - margin-bottom: 0 ! important }
40     -
41     -.hidden {
42     - display: none }
43     -
44     -.subscript {
45     - vertical-align: sub;
46     - font-size: smaller }
47     -
48     -.superscript {
49     - vertical-align: super;
50     - font-size: smaller }
51     -
52     -a.toc-backref {
53     - text-decoration: none ;
54     - color: black }
55     -
56     -blockquote.epigraph {
57     - margin: 2em 5em ; }
58     -
59     -dl.docutils dd {
60     - margin-bottom: 0.5em }
61     -
62     -object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
63     - overflow: hidden;
64     -}
65     -
66     -/* Uncomment (and remove this text!) to get bold-faced definition list terms
67     -dl.docutils dt {
68     - font-weight: bold }
69     -*/
70     -
71     -div.abstract {
72     - margin: 2em 5em }
73     -
74     -div.abstract p.topic-title {
75     - font-weight: bold ;
76     - text-align: center }
77     -
78     -div.admonition, div.attention, div.caution, div.danger, div.error,
79     -div.hint, div.important, div.note, div.tip, div.warning {
80     - margin: 2em ;
81     - border: medium outset ;
82     - padding: 1em }
83     -
84     -div.admonition p.admonition-title, div.hint p.admonition-title,
85     -div.important p.admonition-title, div.note p.admonition-title,
86     -div.tip p.admonition-title {
87     - font-weight: bold ;
88     - font-family: sans-serif }
89     -
90     -div.attention p.admonition-title, div.caution p.admonition-title,
91     -div.danger p.admonition-title, div.error p.admonition-title,
92     -div.warning p.admonition-title, .code .error {
93     - color: red ;
94     - font-weight: bold ;
95     - font-family: sans-serif }
96     -
97     -/* Uncomment (and remove this text!) to get reduced vertical space in
98     - compound paragraphs.
99     -div.compound .compound-first, div.compound .compound-middle {
100     - margin-bottom: 0.5em }
101     -
102     -div.compound .compound-last, div.compound .compound-middle {
103     - margin-top: 0.5em }
104     -*/
105     -
106     -div.dedication {
107     - margin: 2em 5em ;
108     - text-align: center ;
109     - font-style: italic }
110     -
111     -div.dedication p.topic-title {
112     - font-weight: bold ;
113     - font-style: normal }
114     -
115     -div.figure {
116     - margin-left: 2em ;
117     - margin-right: 2em }
118     -
119     -div.footer, div.header {
120     - clear: both;
121     - font-size: smaller }
122     -
123     -div.line-block {
124     - display: block ;
125     - margin-top: 1em ;
126     - margin-bottom: 1em }
127     -
128     -div.line-block div.line-block {
129     - margin-top: 0 ;
130     - margin-bottom: 0 ;
131     - margin-left: 1.5em }
132     -
133     -div.sidebar {
134     - margin: 0 0 0.5em 1em ;
135     - border: medium outset ;
136     - padding: 1em ;
137     - background-color: #ffffee ;
138     - width: 40% ;
139     - float: right ;
140     - clear: right }
141     -
142     -div.sidebar p.rubric {
143     - font-family: sans-serif ;
144     - font-size: medium }
145     -
146     -div.system-messages {
147     - margin: 5em }
148     -
149     -div.system-messages h1 {
150     - color: red }
151     -
152     -div.system-message {
153     - border: medium outset ;
154     - padding: 1em }
155     -
156     -div.system-message p.system-message-title {
157     - color: red ;
158     - font-weight: bold }
159     -
160     -div.topic {
161     - margin: 2em }
162     -
163     -h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
164     -h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
165     - margin-top: 0.4em }
166     -
167     -h1.title {
168     - text-align: center }
169     -
170     -h2.subtitle {
171     - text-align: center }
172     -
173     -hr.docutils {
174     - width: 75% }
175     -
176     -img.align-left, .figure.align-left, object.align-left, table.align-left {
177     - clear: left ;
178     - float: left ;
179     - margin-right: 1em }
180     -
181     -img.align-right, .figure.align-right, object.align-right, table.align-right {
182     - clear: right ;
183     - float: right ;
184     - margin-left: 1em }
185     -
186     -img.align-center, .figure.align-center, object.align-center {
187     - display: block;
188     - margin-left: auto;
189     - margin-right: auto;
190     -}
191     -
192     -table.align-center {
193     - margin-left: auto;
194     - margin-right: auto;
195     -}
196     -
197     -.align-left {
198     - text-align: left }
199     -
200     -.align-center {
201     - clear: both ;
202     - text-align: center }
203     -
204     -.align-right {
205     - text-align: right }
206     -
207     -/* reset inner alignment in figures */
208     -div.align-right {
209     - text-align: inherit }
210     -
211     -/* div.align-center * { */
212     -/* text-align: left } */
213     -
214     -.align-top {
215     - vertical-align: top }
216     -
217     -.align-middle {
218     - vertical-align: middle }
219     -
220     -.align-bottom {
221     - vertical-align: bottom }
222     -
223     -ol.simple, ul.simple {
224     - margin-bottom: 1em }
225     -
226     -ol.arabic {
227     - list-style: decimal }
228     -
229     -ol.loweralpha {
230     - list-style: lower-alpha }
231     -
232     -ol.upperalpha {
233     - list-style: upper-alpha }
234     -
235     -ol.lowerroman {
236     - list-style: lower-roman }
237     -
238     -ol.upperroman {
239     - list-style: upper-roman }
240     -
241     -p.attribution {
242     - text-align: right ;
243     - margin-left: 50% }
244     -
245     -p.caption {
246     - font-style: italic }
247     -
248     -p.credits {
249     - font-style: italic ;
250     - font-size: smaller }
251     -
252     -p.label {
253     - white-space: nowrap }
254     -
255     -p.rubric {
256     - font-weight: bold ;
257     - font-size: larger ;
258     - color: maroon ;
259     - text-align: center }
260     -
261     -p.sidebar-title {
262     - font-family: sans-serif ;
263     - font-weight: bold ;
264     - font-size: larger }
265     -
266     -p.sidebar-subtitle {
267     - font-family: sans-serif ;
268     - font-weight: bold }
269     -
270     -p.topic-title {
271     - font-weight: bold }
272     -
273     -pre.address {
274     - margin-bottom: 0 ;
275     - margin-top: 0 ;
276     - font: inherit }
277     -
278     -pre.literal-block, pre.doctest-block, pre.math, pre.code {
279     - margin-left: 2em ;
280     - margin-right: 2em }
281     -
282     -pre.code .ln { color: grey; } /* line numbers */
283     -pre.code, code { background-color: #eeeeee }
284     -pre.code .comment, code .comment { color: #5C6576 }
285     -pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
286     -pre.code .literal.string, code .literal.string { color: #0C5404 }
287     -pre.code .name.builtin, code .name.builtin { color: #352B84 }
288     -pre.code .deleted, code .deleted { background-color: #DEB0A1}
289     -pre.code .inserted, code .inserted { background-color: #A3D289}
290     -
291     -span.classifier {
292     - font-family: sans-serif ;
293     - font-style: oblique }
294     -
295     -span.classifier-delimiter {
296     - font-family: sans-serif ;
297     - font-weight: bold }
298     -
299     -span.interpreted {
300     - font-family: sans-serif }
301     -
302     -span.option {
303     - white-space: nowrap }
304     -
305     -span.pre {
306     - white-space: pre }
307     -
308     -span.problematic {
309     - color: red }
310     -
311     -span.section-subtitle {
312     - /* font-size relative to parent (h1..h6 element) */
313     - font-size: 80% }
314     -
315     -table.citation {
316     - border-left: solid 1px gray;
317     - margin-left: 1px }
318     -
319     -table.docinfo {
320     - margin: 2em 4em }
321     -
322     -table.docutils {
323     - margin-top: 0.5em ;
324     - margin-bottom: 0.5em }
325     -
326     -table.footnote {
327     - border-left: solid 1px black;
328     - margin-left: 1px }
329     -
330     -table.docutils td, table.docutils th,
331     -table.docinfo td, table.docinfo th {
332     - padding-left: 0.5em ;
333     - padding-right: 0.5em ;
334     - vertical-align: top }
335     -
336     -table.docutils th.field-name, table.docinfo th.docinfo-name {
337     - font-weight: bold ;
338     - text-align: left ;
339     - white-space: nowrap ;
340     - padding-left: 0 }
341     -
342     -/* "booktabs" style (no vertical lines) */
343     -table.docutils.booktabs {
344     - border: 0px;
345     - border-top: 2px solid;
346     - border-bottom: 2px solid;
347     - border-collapse: collapse;
348     -}
349     -table.docutils.booktabs * {
350     - border: 0px;
351     -}
352     -table.docutils.booktabs th {
353     - border-bottom: thin solid;
354     - text-align: left;
355     -}
356     -
357     -h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
358     -h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
359     - font-size: 100% }
360     -
361     -ul.auto-toc {
362     - list-style-type: none }
363     -
364     -</style>
365     -</head>
366     -<body>
367     -<div class="document">
368     -
369     -
370     -<div class="section" id="main-program">
371     -<h1>Main program</h1>
372     -<div class="line-block">
373     -<div class="line">Copyright(c) 2007-2017 Yuri D'Elia &lt;<a class="reference external" href="mailto:wavexx&#64;thregr.org">wavexx&#64;thregr.org</a>&gt;</div>
374     -<div class="line">License: GNU GPL 2+ (see COPYING)</div>
375     -</div>
376     -</div>
377     -<div class="section" id="localization">
378     -<h1>Localization</h1>
379     -<table class="docutils field-list" frame="void" rules="none">
380     -<col class="field-name" />
381     -<col class="field-body" />
382     -<tbody valign="top">
383     -<tr class="field"><th class="field-name" colspan="2">Brazilian Portuguese:</th></tr>
384     -<tr class="field"><td>&nbsp;</td><td class="field-body">Guilherme Benkenstein &lt;<a class="reference external" href="mailto:gb&#64;gbti.com.br">gb&#64;gbti.com.br</a>&gt;</td>
385     -</tr>
386     -<tr class="field"><th class="field-name">Czech:</th><td class="field-body">Jan Štětina &lt;<a class="reference external" href="mailto:zaantar&#64;gmail.com">zaantar&#64;gmail.com</a>&gt;</td>
387     -</tr>
388     -<tr class="field"><th class="field-name">Dutch:</th><td class="field-body">Maarten Schoonman &lt;<a class="reference external" href="mailto:m.s.schoonman&#64;home.nl">m.s.schoonman&#64;home.nl</a>&gt;</td>
389     -</tr>
390     -<tr class="field"><th class="field-name">French:</th><td class="field-body">Daniel Berteaud &lt;<a class="reference external" href="mailto:daniel&#64;firewall-services.com">daniel&#64;firewall-services.com</a>&gt;</td>
391     -</tr>
392     -<tr class="field"><th class="field-name">German:</th><td class="field-body">Clemens Egger &lt;<a class="reference external" href="mailto:clemens.egger&#64;eurac.edu">clemens.egger&#64;eurac.edu</a>&gt;</td>
393     -</tr>
394     -<tr class="field"><th class="field-name">Italian:</th><td class="field-body">Yuri D'Elia &lt;<a class="reference external" href="mailto:wavexx&#64;thregr.org">wavexx&#64;thregr.org</a>&gt;</td>
395     -</tr>
396     -<tr class="field"><th class="field-name">Japanese:</th><td class="field-body">Teruo IWAI &lt;<a class="reference external" href="mailto:teruo.iwai&#64;gmail.com">teruo.iwai&#64;gmail.com</a>&gt;</td>
397     -</tr>
398     -<tr class="field"><th class="field-name">Russian:</th><td class="field-body">Олейник О.В &lt;<a class="reference external" href="mailto:oleg_oleinik&#64;mail.ru">oleg_oleinik&#64;mail.ru</a>&gt;</td>
399     -</tr>
400     -<tr class="field"><th class="field-name">Spanish:</th><td class="field-body">Roberto Salgado &lt;<a class="reference external" href="mailto:drober&#64;gmail.com">drober&#64;gmail.com</a>&gt;</td>
401     -</tr>
402     -<tr class="field"><th class="field-name" colspan="2">Simplified Cinese:</th></tr>
403     -<tr class="field"><td>&nbsp;</td><td class="field-body">Guangyu Dong &lt;<a class="reference external" href="mailto:skyerce&#64;gmail.com">skyerce&#64;gmail.com</a>&gt;</td>
404     -</tr>
405     -</tbody>
406     -</table>
407     -</div>
408     -<div class="section" id="bundled-code">
409     -<h1>Bundled code</h1>
410     -<ul>
411     -<li><p class="first">PHP-Gettext:</p>
412     -<div class="line-block">
413     -<div class="line">Copyright(c) 2005 Steven Armstrong &lt;sa at c-area dot ch&gt;</div>
414     -<div class="line">Copyright(c) 2003, 2009 Danilo Segan &lt;<a class="reference external" href="mailto:danilo&#64;kvota.net">danilo&#64;kvota.net</a>&gt;</div>
415     -<div class="line">Copyright(c) 2005 Nico Kaiser &lt;<a class="reference external" href="mailto:nico&#64;siriux.net">nico&#64;siriux.net</a>&gt;</div>
416     -<div class="line">License: GNU GPL 2+ (see COPYING)</div>
417     -<div class="line"><a class="reference external" href="https://launchpad.net/php-gettext/">https://launchpad.net/php-gettext/</a></div>
418     -</div>
419     -</li>
420     -<li><p class="first">iepngfix.htc:</p>
421     -<div class="line-block">
422     -<div class="line">Copyright(c) 2004-2005 Angus Turnbull <a class="reference external" href="http://www.twinhelix.com">http://www.twinhelix.com</a></div>
423     -<div class="line">This is licensed under the CC-GNU LGPL, version 2.1 or later.</div>
424     -<div class="line">For details, see: <a class="reference external" href="http://creativecommons.org/licenses/LGPL/2.1/">http://creativecommons.org/licenses/LGPL/2.1/</a></div>
425     -</div>
426     -</li>
427     -<li><p class="first">progress-polyfill:</p>
428     -<div class="line-block">
429     -<div class="line">Copyright(c) 2013 Jonathan Stipe</div>
430     -<div class="line">Dual licensed under the MIT or GPL Version 2 licenses.</div>
431     -<div class="line"><a class="reference external" href="https://github.com/jonstipe/progress-polyfill">https://github.com/jonstipe/progress-polyfill</a></div>
432     -</div>
433     -</li>
434     -<li><p class="first">jQuery:</p>
435     -<div class="line-block">
436     -<div class="line">Copyright(c) 2005, 2014 jQuery Foundation, Inc.</div>
437     -<div class="line">Dual licensed under the MIT or GPL Version 2 licenses.</div>
438     -<div class="line"><a class="reference external" href="http://jquery.org/license">http://jquery.org/license</a></div>
439     -</div>
440     -</li>
441     -<li><p class="first">stupidtable:</p>
442     -<div class="line-block">
443     -<div class="line">Copyright(c) 2012 Joseph McCullough</div>
444     -<div class="line">Licensed under the MIT licenses.</div>
445     -<div class="line"><a class="reference external" href="https://github.com/joequery/Stupid-Table-Plugin">https://github.com/joequery/Stupid-Table-Plugin</a></div>
446     -</div>
447     -</li>
448     -</ul>
449     -</div>
450     -<div class="section" id="bundled-media">
451     -<h1>Bundled media</h1>
452     -<ul>
453     -<li><p class="first"><tt class="docutils literal">cross.png</tt>, <tt class="docutils literal">edit.png</tt>, <tt class="docutils literal">tick.png</tt>:</p>
454     -<div class="line-block">
455     -<div class="line">Copyright(c) 2014 Joseph North</div>
456     -<div class="line">Licensed under a Creative Commons BY-SA 3.0 license.</div>
457     -<div class="line"><a class="reference external" href="http://sublink.ca/icons/sweetieplus/">http://sublink.ca/icons/sweetieplus/</a></div>
458     -</div>
459     -</li>
460     -<li><p class="first"><tt class="docutils literal">save.png</tt>, <tt class="docutils literal">upload.png</tt>:</p>
461     -<div class="line-block">
462     -<div class="line">Copyright(c) 2011 Yusuke Kamiyamane</div>
463     -<div class="line">Licensed under a Creative Commons Attribution 3.0 license.</div>
464     -<div class="line"><a class="reference external" href="http://creativecommons.org/licenses/by/3.0/">http://creativecommons.org/licenses/by/3.0/</a></div>
465     -</div>
466     -</li>
467     -</ul>
468     -</div>
469     -</div>
470     -</body>
471     -</html>
472     diff -Nur dl-0.18.1/AUTHORS.rst dl-master/AUTHORS.rst
473     --- dl-0.18.1/AUTHORS.rst 2017-09-06 12:08:38.000000000 -0400
474     +++ dl-master/AUTHORS.rst 2021-03-16 18:59:58.000000000 -0400
475     @@ -1,7 +1,7 @@
476     Main program
477     ------------
478    
479     -| Copyright(c) 2007-2017 Yuri D'Elia <wavexx@thregr.org>
480     +| Copyright(c) 2007-2021 Yuri D'Elia <wavexx@thregr.org>
481     | License: GNU GPL 2+ (see COPYING)
482    
483     Localization
484     @@ -24,9 +24,10 @@
485    
486     * PHP-Gettext:
487    
488     - | Copyright(c) 2005 Steven Armstrong <sa at c-area dot ch>
489     - | Copyright(c) 2003, 2009 Danilo Segan <danilo@kvota.net>
490     + | Copyright(c) 2005-2006 Steven Armstrong <sa at c-area dot ch>
491     + | Copyright(c) 2003-2009 Danilo Segan <danilo@kvota.net>
492     | Copyright(c) 2005 Nico Kaiser <nico@siriux.net>
493     + | Copyright(c) 2006 Marcelo Jorge Vieira <metal@debian.org>
494     | License: GNU GPL 2+ (see COPYING)
495     | https://launchpad.net/php-gettext/
496    
497     diff -Nur dl-0.18.1/client/dl-cli.py dl-master/client/dl-cli.py
498     --- dl-0.18.1/client/dl-cli.py 2017-09-06 12:08:38.000000000 -0400
499     +++ dl-master/client/dl-cli.py 2021-03-16 18:59:58.000000000 -0400
500     @@ -26,7 +26,7 @@
501     import httplib
502    
503    
504     -DL_VERSION = "0.18"
505     +DL_VERSION = "0.19"
506     DL_AGENT = "dl-cli/" + DL_VERSION
507    
508    
509     @@ -69,7 +69,8 @@
510     if not filename:
511     filename = os.path.basename(path)
512     c.setopt(c.HTTPPOST, [
513     - ("file", (c.FORM_FILE, path, c.FORM_FILENAME, filename)),
514     + ("file", (c.FORM_FILE, path.encode(sys.getfilesystemencoding()),
515     + c.FORM_FILENAME, filename.encode('utf8'))),
516     ("msg", json.dumps({}))])
517    
518     try:
519     diff -Nur dl-0.18.1/client/thunderbird-filelink-dl/chrome/locale/en-US/compose.properties dl-master/client/thunderbird-filelink-dl/chrome/locale/en-US/compose.properties
520     --- dl-0.18.1/client/thunderbird-filelink-dl/chrome/locale/en-US/compose.properties 2017-09-06 12:08:38.000000000 -0400
521     +++ dl-master/client/thunderbird-filelink-dl/chrome/locale/en-US/compose.properties 2021-03-16 18:59:58.000000000 -0400
522     @@ -1,4 +1,4 @@
523     -accountNeededTitle=A DL account is required
524     +accountNeededTitle=A DL FileLink account is required
525     accountNeededMsg=Do you want to create an account now?
526     newGrantFailure=Cannot generate a new grant
527     -newGrantProgress=Requesting new grant...
528     +newGrantProgress=Requesting new grant…
529     diff -Nur dl-0.18.1/client/thunderbird-filelink-dl/chrome/locale/en-US/management.dtd dl-master/client/thunderbird-filelink-dl/chrome/locale/en-US/management.dtd
530     --- dl-0.18.1/client/thunderbird-filelink-dl/chrome/locale/en-US/management.dtd 2017-09-06 12:08:38.000000000 -0400
531     +++ dl-master/client/thunderbird-filelink-dl/chrome/locale/en-US/management.dtd 2021-03-16 18:59:58.000000000 -0400
532     @@ -1,4 +1,4 @@
533     -<!ENTITY DL_mngt.name "DL for Thunderbird">
534     +<!ENTITY DL_mngt.name "DL FileLink Provider for Thunderbird">
535     <!ENTITY DL_mngt.maxSize "Maximum file size:">
536     <!ENTITY DL_mngt.total "Expire in total # of days:">
537     <!ENTITY DL_mngt.lastdl "Expire in # of days after last download:">
538     diff -Nur dl-0.18.1/client/thunderbird-filelink-dl/chrome/locale/hu/compose.dtd dl-master/client/thunderbird-filelink-dl/chrome/locale/hu/compose.dtd
539     --- dl-0.18.1/client/thunderbird-filelink-dl/chrome/locale/hu/compose.dtd 1969-12-31 19:00:00.000000000 -0500
540     +++ dl-master/client/thunderbird-filelink-dl/chrome/locale/hu/compose.dtd 2021-03-16 18:59:58.000000000 -0400
541     @@ -0,0 +1 @@
542     +<!ENTITY DL_compose.insertGrant "Feltöltési támogatás beszúrása">
543     diff -Nur dl-0.18.1/client/thunderbird-filelink-dl/chrome/locale/hu/compose.properties dl-master/client/thunderbird-filelink-dl/chrome/locale/hu/compose.properties
544     --- dl-0.18.1/client/thunderbird-filelink-dl/chrome/locale/hu/compose.properties 1969-12-31 19:00:00.000000000 -0500
545     +++ dl-master/client/thunderbird-filelink-dl/chrome/locale/hu/compose.properties 2021-03-16 18:59:58.000000000 -0400
546     @@ -0,0 +1,4 @@
547     +accountNeededTitle=A DL-fájlhivatkozás fiók szükséges
548     +accountNeededMsg=Fiók létrehozása most?
549     +newGrantFailure=Nem lehet új támogatást létrehozni
550     +newGrantProgress=Új támogatás kérése…
551     diff -Nur dl-0.18.1/client/thunderbird-filelink-dl/chrome/locale/hu/management.dtd dl-master/client/thunderbird-filelink-dl/chrome/locale/hu/management.dtd
552     --- dl-0.18.1/client/thunderbird-filelink-dl/chrome/locale/hu/management.dtd 1969-12-31 19:00:00.000000000 -0500
553     +++ dl-master/client/thunderbird-filelink-dl/chrome/locale/hu/management.dtd 2021-03-16 18:59:58.000000000 -0400
554     @@ -0,0 +1,5 @@
555     +<!ENTITY DL_mngt.name "A „DL” fájlhivatkozás szolgáltató a Thunderbird számára (DL FileLink Provider for Thunderbird)">
556     +<!ENTITY DL_mngt.maxSize "Maximális fájlméret:">
557     +<!ENTITY DL_mngt.total "Lejárat a teljes napok számában:">
558     +<!ENTITY DL_mngt.lastdl "Lejárat az utolsó letöltés utáni napok számával:">
559     +<!ENTITY DL_mngt.maxdl "Lejárat a letöltések száma után:">
560     diff -Nur dl-0.18.1/client/thunderbird-filelink-dl/chrome/locale/hu/settings.dtd dl-master/client/thunderbird-filelink-dl/chrome/locale/hu/settings.dtd
561     --- dl-0.18.1/client/thunderbird-filelink-dl/chrome/locale/hu/settings.dtd 1969-12-31 19:00:00.000000000 -0500
562     +++ dl-master/client/thunderbird-filelink-dl/chrome/locale/hu/settings.dtd 2021-03-16 18:59:58.000000000 -0400
563     @@ -0,0 +1,3 @@
564     +<!ENTITY DL_settings.restURL "REST URL:">
565     +<!ENTITY DL_settings.username "Felhasználónév:">
566     +<!ENTITY DL_settings.password "Jelszó:">
567     diff -Nur dl-0.18.1/client/thunderbird-filelink-dl/chrome.manifest dl-master/client/thunderbird-filelink-dl/chrome.manifest
568     --- dl-0.18.1/client/thunderbird-filelink-dl/chrome.manifest 2017-09-06 12:08:38.000000000 -0400
569     +++ dl-master/client/thunderbird-filelink-dl/chrome.manifest 2021-03-16 18:59:58.000000000 -0400
570     @@ -1,6 +1,7 @@
571     content thunderbird-filelink-dl chrome/content/
572     skin thunderbird-filelink-dl default chrome/skin/
573     locale thunderbird-filelink-dl en-US chrome/locale/en-US/
574     +locale thunderbird-filelink-dl en-US chrome/locale/hu/
575    
576     component {c0bee36d-3c0d-460b-bb9a-f0e9c873a833} components/nsDL.js
577     contract @thregr.org/thunderbird-filelink-dl;1 {c0bee36d-3c0d-460b-bb9a-f0e9c873a833}
578     Les fichiers binaires dl-0.18.1/client/thunderbird-filelink-dl/components/nsDL.xpt et dl-master/client/thunderbird-filelink-dl/components/nsDL.xpt sont différents
579     diff -Nur dl-0.18.1/client/thunderbird-filelink-dl/install.rdf dl-master/client/thunderbird-filelink-dl/install.rdf
580     --- dl-0.18.1/client/thunderbird-filelink-dl/install.rdf 2017-09-06 12:08:38.000000000 -0400
581     +++ dl-master/client/thunderbird-filelink-dl/install.rdf 2021-03-16 18:59:58.000000000 -0400
582     @@ -4,11 +4,13 @@
583     <Description about="urn:mozilla:install-manifest">
584     <!-- Front End MetaData -->
585     <em:id>thunderbird-filelink-dl@thregr.org</em:id>
586     - <em:name>DL for Thunderbird</em:name>
587     - <em:description>DL support for Thunderbird's Filelink</em:description>
588     + <em:name>DL FileLink Provider for Thunderbird</em:name>
589     + <em:description>Convert large attachments to links automatically, directly within the Composer window, using your own “DL” server/service instead of relying on 3rd-party providers</em:description>
590     <em:homepageURL>https://www.thregr.org/~wavexx/software/dl/</em:homepageURL>
591     <em:creator>Yuri D'Elia</em:creator>
592     - <em:version>0.17.2</em:version>
593     + <em:translator>Yuri D'Elia (en-US)</em:translator>
594     + <em:translator>Óvári (hu)</em:translator>
595     + <em:version>0.17.3</em:version>
596     <em:type>2</em:type>
597    
598     <!-- Thunderbird -->
599     @@ -19,5 +21,17 @@
600     <em:maxVersion>52.*</em:maxVersion>
601     </Description>
602     </em:targetApplication>
603     +
604     + <!-- Hungarian -->
605     + <em:localized>
606     + <Description>
607     + <em:locale>hu</em:locale>
608     + <em:name>A „DL” fájlhivatkozás szolgáltató a Thunderbird számára (DL FileLink Provider for Thunderbird)</em:name>
609     + <em:description>Átalakítja a nagy mellékleteket önműködően az üzenetszerkesztő ablakban lévő hivatkozásoké, saját „DL” kiszolgálóéval/szolgáltatásával, a harmadik féltől származó szolgáltatókra való hivatkozás helyett</em:description>
610     + <em:translator>Yuri D'Elia (en-US)</em:translator>
611     + <em:translator>Óvári (hu)</em:translator>
612     + </Description>
613     + </em:localized>
614     +
615     </Description>
616     </RDF>
617     Les fichiers binaires dl-0.18.1/client/thunderbird-filelink-dl.xpi et dl-master/client/thunderbird-filelink-dl.xpi sont différents
618     diff -Nur dl-0.18.1/.gitignore dl-master/.gitignore
619     --- dl-0.18.1/.gitignore 1969-12-31 19:00:00.000000000 -0500
620     +++ dl-master/.gitignore 2021-03-16 18:59:58.000000000 -0400
621     @@ -0,0 +1,7 @@
622     +*.mo
623     +*~
624     +*.pyc
625     +.*.swp
626     +*.html
627     +/htdocs/include/config.php
628     +/htdocs/static/guide/*/*.html
629     diff -Nur dl-0.18.1/htdocs/include/basefuncs.php dl-master/htdocs/include/basefuncs.php
630     --- dl-0.18.1/htdocs/include/basefuncs.php 2017-09-06 12:08:38.000000000 -0400
631     +++ dl-master/htdocs/include/basefuncs.php 2021-03-16 18:59:58.000000000 -0400
632     @@ -3,8 +3,17 @@
633    
634     function returnBytes($val)
635     {
636     + if(is_int($val)) return $val;
637     + if(!strlen($val)) return 0;
638     +
639     + // parse suffix (if any)
640     $val = trim($val);
641     - $last = strtolower($val{strlen($val)-1});
642     + $last = strtolower($val[strlen($val)-1]);
643     + if($last === (string)(int)$last || $last === ".")
644     + return (int)$val; // no sfx
645     +
646     + // handle mulitiplier
647     + $val = (int)substr($val, 0, -1);
648     switch($last)
649     {
650     case 'g': $val *= 1024;
651     diff -Nur dl-0.18.1/htdocs/include/config.php.dist dl-master/htdocs/include/config.php.dist
652     --- dl-0.18.1/htdocs/include/config.php.dist 2017-09-06 12:08:38.000000000 -0400
653     +++ dl-master/htdocs/include/config.php.dist 2021-03-16 18:59:58.000000000 -0400
654     @@ -64,16 +64,16 @@
655     //$maxSize = ini_get('upload_max_filesize');
656    
657     // dateFmtShort: Date format as used in the listings.
658     -// See http://it2.php.net/manual/en/function.date.php for the
659     +// See http://php.net/manual/en/function.date.php for the
660     // format specification. Useful choices are:
661     // - "d/m/Y": day/month/year
662     // - "d/m/Y T": day/month/year timezone
663     //$dateFmtShort = "Y-m-d";
664    
665     // dateFmtFull: Full date/time format as used in ticket/grant details.
666     -// See http://it2.php.net/manual/en/function.date.php for the
667     +// See http://php.net/manual/en/function.date.php for the
668     // format specification.
669     -//$dateFmtFull = "Y-m-d H:m:s T";
670     +//$dateFmtFull = "Y-m-d H:i:s T";
671    
672     // authRealm: Enables HTTP authentication
673     // When using HTTP authentication, you should set authRealm to the
674     diff -Nur dl-0.18.1/htdocs/include/confwrap.php dl-master/htdocs/include/confwrap.php
675     --- dl-0.18.1/htdocs/include/confwrap.php 2017-09-06 12:08:38.000000000 -0400
676     +++ dl-master/htdocs/include/confwrap.php 2021-03-16 18:59:58.000000000 -0400
677     @@ -27,7 +27,7 @@
678     if(!isset($gcLimit)) $gcLimit = 0;
679     if(!isset($defTimezone)) $defTimezone = @date_default_timezone_get();
680     if(!isset($dateFmtShort)) $dateFmtShort = "Y-m-d";
681     -if(!isset($dateFmtFull)) $dateFmtFull = "Y-m-d H:m:s T";
682     +if(!isset($dateFmtFull)) $dateFmtFull = "Y-m-d H:i:s T";
683     if(!isset($emailSubjectPrefix)) $emailSubjectPrefix = "[dl] ";
684    
685     // default style
686     @@ -103,7 +103,7 @@
687     );
688    
689     // constants
690     -$dlVersion = "0.18.1";
691     +$dlVersion = "0.19";
692     $schemaVersion = "0.18";
693     $bannerUrl = 'https://www.thregr.org/~wavexx/software/dl/';
694     $banner = '<a href="' . htmlentities($bannerUrl) . '">dl ticket service</a>'
695     diff -Nur dl-0.18.1/htdocs/include/dbfuncs.php dl-master/htdocs/include/dbfuncs.php
696     --- dl-0.18.1/htdocs/include/dbfuncs.php 2017-09-06 12:08:38.000000000 -0400
697     +++ dl-master/htdocs/include/dbfuncs.php 2021-03-16 18:59:58.000000000 -0400
698     @@ -22,19 +22,19 @@
699     {
700     case "sqlite":
701     // enforce foreign keys by default
702     - $ret = $this->exec('PRAGMA foreign_keys = ON');
703     + $this->exec('PRAGMA foreign_keys = ON');
704     break;
705    
706     case "mysql":
707     // put MySQL into ANSI mode
708     - $ret = $this->exec('SET SQL_MODE = ANSI_QUOTES');
709     + $this->exec('SET SQL_MODE = ANSI');
710     break;
711     }
712     }
713    
714     public function ping()
715     {
716     - try { return ($this->exec('SELECT 1') == 1); }
717     + try { return (@$this->exec('SELECT 1') == 1); }
718     catch(PDOException $e) { return false; }
719     }
720     }
721     diff -Nur dl-0.18.1/htdocs/include/editgrants.php dl-master/htdocs/include/editgrants.php
722     --- dl-0.18.1/htdocs/include/editgrants.php 2017-09-06 12:08:38.000000000 -0400
723     +++ dl-master/htdocs/include/editgrants.php 2021-03-16 18:59:58.000000000 -0400
724     @@ -97,7 +97,7 @@
725     {
726     $addrs = array();
727     foreach(getEMailAddrs($DATA['sent_email']) as $email)
728     - $addrs[] = '<a href="mailto:' . urlencode($email) . '">' . htmlEntUTF8($email) . '</a>';
729     + $addrs[] = '<a href="mailto:' . rawurlencode($email) . '">' . htmlEntUTF8($email) . '</a>';
730     $details[T_("Initially sent to")] = implode(", ", $addrs);
731     }
732    
733     diff -Nur dl-0.18.1/htdocs/include/edittickets.php dl-master/htdocs/include/edittickets.php
734     --- dl-0.18.1/htdocs/include/edittickets.php 2017-09-06 12:08:38.000000000 -0400
735     +++ dl-master/htdocs/include/edittickets.php 2021-03-16 18:59:58.000000000 -0400
736     @@ -76,7 +76,7 @@
737     {
738     $addrs = array();
739     foreach(getEMailAddrs($DATA['sent_email']) as $email)
740     - $addrs[] = '<a href="mailto:' . urlencode($email) . '">' . htmlEntUTF8($email) . '</a>';
741     + $addrs[] = '<a href="mailto:' . rawurlencode($email) . '">' . htmlEntUTF8($email) . '</a>';
742     $details[T_("Initially sent to")] = implode(", ", $addrs);
743     }
744    
745     diff -Nur dl-0.18.1/htdocs/include/funcs.php dl-master/htdocs/include/funcs.php
746     --- dl-0.18.1/htdocs/include/funcs.php 2017-09-06 12:08:38.000000000 -0400
747     +++ dl-master/htdocs/include/funcs.php 2021-03-16 18:59:58.000000000 -0400
748     @@ -308,12 +308,12 @@
749    
750     function tokenUrl($url, $params = array())
751     {
752     - $url .= '?token=' . urlencode($_SESSION['token']);
753     + $url .= '?token=' . rawurlencode($_SESSION['token']);
754     foreach($params as $k => $v)
755     {
756     - $url .= '&' . urlencode($k);
757     + $url .= '&' . rawurlencode($k);
758     if(!is_null($v))
759     - $url .= '=' . urlencode($v);
760     + $url .= '=' . rawurlencode($v);
761     }
762     return $url;
763     }
764     @@ -359,7 +359,7 @@
765    
766     foreach($v['funcs'] as $i)
767     {
768     - if(!call_user_func($i, $p))
769     + if(!call_user_func_array($i, array(&$p)))
770     {
771     $error = true;
772     unset($array[$k]);
773     @@ -545,16 +545,25 @@
774     else
775     {
776     $zip = new ZipArchive();
777     - if($zip->open($tmpFile, ZipArchive::CREATE) !== true)
778     + if($zip->open($tmpFile, ZipArchive::CREATE|ZipArchive::OVERWRITE) !== true)
779     + {
780     + logError("cannot create ZIP file $tmpFile");
781     goto error;
782     + }
783     foreach($FILES as $FILE)
784     {
785     $name = uniqueFileName(mb_sane_base($FILE["name"]), $files);
786     if(!$zip->addFile($FILE["tmp_name"], $name))
787     + {
788     + logError("cannot add file " . $FILE["tmp_name"] . " to $tmpFile");
789     goto error;
790     + }
791     }
792     if(!$zip->close())
793     + {
794     + logError("cannot close ZIP file $tmpFile");
795     goto error;
796     + }
797     $name = "Archive-" . date("Y-m-d") . ".zip";
798     $size = filesize($tmpFile);
799     }
800     diff -Nur dl-0.18.1/htdocs/include/.htaccess dl-master/htdocs/include/.htaccess
801     --- dl-0.18.1/htdocs/include/.htaccess 2017-09-06 12:08:38.000000000 -0400
802     +++ dl-master/htdocs/include/.htaccess 2021-03-16 18:59:58.000000000 -0400
803     @@ -1,4 +1,9 @@
804     <Limit GET POST>
805     - Order allow,deny
806     - Deny from all
807     + <IfVersion >= 2.4>
808     + Require all denied
809     + </IfVersion>
810     + <IfVersion < 2.4>
811     + Order allow,deny
812     + Deny from all
813     + </IfVersion>
814     </Limit>
815     diff -Nur dl-0.18.1/htdocs/include/init.php dl-master/htdocs/include/init.php
816     --- dl-0.18.1/htdocs/include/init.php 2017-09-06 12:08:38.000000000 -0400
817     +++ dl-master/htdocs/include/init.php 2021-03-16 18:59:58.000000000 -0400
818     @@ -21,6 +21,8 @@
819     $ret = $logFd = fopen($logFile, "at");
820     if(@$ret === false)
821     die("cannot initialize logging\n");
822     +else
823     + ini_set('display_errors', 0);
824    
825     // initialize the db
826     connectDB();
827     diff -Nur dl-0.18.1/htdocs/include/lang.php dl-master/htdocs/include/lang.php
828     --- dl-0.18.1/htdocs/include/lang.php 2017-09-06 12:08:38.000000000 -0400
829     +++ dl-master/htdocs/include/lang.php 2021-03-16 18:59:58.000000000 -0400
830     @@ -71,9 +71,11 @@
831     {
832     global $helpPath, $helpRoot, $masterPath, $defLocale, $incPath;
833    
834     - T_setlocale(LC_ALL, $locale . ".utf8");
835     - T_bindtextdomain('messages', "$incPath/locale");
836     - T_textdomain('messages');
837     + $domain = 'messages';
838     + T_setlocale(LC_ALL, $locale);
839     + T_bindtextdomain($domain, "$incPath/locale");
840     + T_bind_textdomain_codeset($domain, 'UTF-8');
841     + T_textdomain($domain);
842    
843     if(file_exists("$helpRoot/$locale"))
844     $helpPath = "$masterPath$helpRoot/$locale/";
845     diff -Nur dl-0.18.1/htdocs/include/lib/gettext/gettext.inc dl-master/htdocs/include/lib/gettext/gettext.inc
846     --- dl-0.18.1/htdocs/include/lib/gettext/gettext.inc 2017-09-06 12:08:38.000000000 -0400
847     +++ dl-master/htdocs/include/lib/gettext/gettext.inc 2021-03-16 18:59:58.000000000 -0400
848     @@ -32,7 +32,6 @@
849     LC_ALL 6
850     */
851    
852     -
853     // LC_MESSAGES is not available if php-gettext is not loaded
854     // while the other constants are already available from session extension.
855     if (!defined('LC_MESSAGES')) {
856     @@ -175,14 +174,13 @@
857     * Convert the given string to the encoding set by bind_textdomain_codeset.
858     */
859     function _encode($text) {
860     + $target_encoding = _get_codeset();
861     + if (function_exists("mb_detect_encoding")) {
862     $source_encoding = mb_detect_encoding($text);
863     - $target_encoding = _get_codeset();
864     - if ($source_encoding != $target_encoding) {
865     - return mb_convert_encoding($text, $target_encoding, $source_encoding);
866     - }
867     - else {
868     - return $text;
869     - }
870     + if ($source_encoding != $target_encoding)
871     + $text = mb_convert_encoding($text, $target_encoding, $source_encoding);
872     + }
873     + return $text;
874     }
875    
876    
877     @@ -229,7 +227,9 @@
878     }
879     // Allow locale to be changed on the go for one translation domain.
880     global $text_domains, $default_domain;
881     - unset($text_domains[$default_domain]->l10n);
882     + if (array_key_exists($default_domain, $text_domains)) {
883     + unset($text_domains[$default_domain]->l10n);
884     + }
885     return $CURRENTLOCALE;
886     }
887     }
888     @@ -288,9 +288,9 @@
889     /**
890     * Plural version of gettext.
891     */
892     -function _ngettext($single, $plural, $number) {
893     +function _ngettext($singular, $plural, $number) {
894     $l10n = _get_reader();
895     - return _encode($l10n->ngettext($single, $plural, $number));
896     + return _encode($l10n->ngettext($singular, $plural, $number));
897     }
898    
899     /**
900     @@ -304,9 +304,9 @@
901     /**
902     * Plural version of dgettext.
903     */
904     -function _dngettext($domain, $single, $plural, $number) {
905     +function _dngettext($domain, $singular, $plural, $number) {
906     $l10n = _get_reader($domain);
907     - return _encode($l10n->ngettext($single, $plural, $number));
908     + return _encode($l10n->ngettext($singular, $plural, $number));
909     }
910    
911     /**
912     @@ -319,9 +319,9 @@
913     /**
914     * Plural version of dcgettext.
915     */
916     -function _dcngettext($domain, $single, $plural, $number, $category) {
917     +function _dcngettext($domain, $singular, $plural, $number, $category) {
918     $l10n = _get_reader($domain, $category);
919     - return _encode($l10n->ngettext($single, $plural, $number));
920     + return _encode($l10n->ngettext($singular, $plural, $number));
921     }
922    
923     /**
924     @@ -405,29 +405,29 @@
925     if (_check_locale_and_function()) return _($msgid);
926     return __($msgid);
927     }
928     -function T_ngettext($single, $plural, $number) {
929     +function T_ngettext($singular, $plural, $number) {
930     if (_check_locale_and_function())
931     - return ngettext($single, $plural, $number);
932     - else return _ngettext($single, $plural, $number);
933     + return ngettext($singular, $plural, $number);
934     + else return _ngettext($singular, $plural, $number);
935     }
936     function T_dgettext($domain, $msgid) {
937     if (_check_locale_and_function()) return dgettext($domain, $msgid);
938     else return _dgettext($domain, $msgid);
939     }
940     -function T_dngettext($domain, $single, $plural, $number) {
941     +function T_dngettext($domain, $singular, $plural, $number) {
942     if (_check_locale_and_function())
943     - return dngettext($domain, $single, $plural, $number);
944     - else return _dngettext($domain, $single, $plural, $number);
945     + return dngettext($domain, $singular, $plural, $number);
946     + else return _dngettext($domain, $singular, $plural, $number);
947     }
948     function T_dcgettext($domain, $msgid, $category) {
949     if (_check_locale_and_function())
950     return dcgettext($domain, $msgid, $category);
951     else return _dcgettext($domain, $msgid, $category);
952     }
953     -function T_dcngettext($domain, $single, $plural, $number, $category) {
954     +function T_dcngettext($domain, $singular, $plural, $number, $category) {
955     if (_check_locale_and_function())
956     - return dcngettext($domain, $single, $plural, $number, $category);
957     - else return _dcngettext($domain, $single, $plural, $number, $category);
958     + return dcngettext($domain, $singular, $plural, $number, $category);
959     + else return _dcngettext($domain, $singular, $plural, $number, $category);
960     }
961    
962     function T_pgettext($context, $msgid) {
963     @@ -451,26 +451,27 @@
964     return _dcpgettext($domain, $context, $msgid, $category);
965     }
966    
967     -function T_npgettext($context, $singular, $plural) {
968     +function T_npgettext($context, $singular, $plural, $number) {
969     if (_check_locale_and_function('npgettext'))
970     - return npgettext($context, $single, $plural, $number);
971     + return npgettext($context, $singular, $plural, $number);
972     else
973     - return _npgettext($context, $single, $plural, $number);
974     + return _npgettext($context, $singular, $plural, $number);
975     }
976    
977     -function T_dnpgettext($domain, $context, $singular, $plural) {
978     +function T_dnpgettext($domain, $context, $singular, $plural, $number) {
979     if (_check_locale_and_function('dnpgettext'))
980     - return dnpgettext($domain, $context, $single, $plural, $number);
981     + return dnpgettext($domain, $context, $singular, $plural, $number);
982     else
983     - return _dnpgettext($domain, $context, $single, $plural, $number);
984     + return _dnpgettext($domain, $context, $singular, $plural, $number);
985     }
986    
987     -function T_dcnpgettext($domain, $context, $singular, $plural, $category) {
988     +function T_dcnpgettext($domain, $context, $singular, $plural,
989     + $number, $category) {
990     if (_check_locale_and_function('dcnpgettext'))
991     - return dcnpgettext($domain, $context, $single,
992     + return dcnpgettext($domain, $context, $singular,
993     $plural, $number, $category);
994     else
995     - return _dcnpgettext($domain, $context, $single,
996     + return _dcnpgettext($domain, $context, $singular,
997     $plural, $number, $category);
998     }
999    
1000     @@ -494,39 +495,39 @@
1001     function _($msgid) {
1002     return __($msgid);
1003     }
1004     - function ngettext($single, $plural, $number) {
1005     - return _ngettext($single, $plural, $number);
1006     + function ngettext($singular, $plural, $number) {
1007     + return _ngettext($singular, $plural, $number);
1008     }
1009     function dgettext($domain, $msgid) {
1010     return _dgettext($domain, $msgid);
1011     }
1012     - function dngettext($domain, $single, $plural, $number) {
1013     - return _dngettext($domain, $single, $plural, $number);
1014     + function dngettext($domain, $singular, $plural, $number) {
1015     + return _dngettext($domain, $singular, $plural, $number);
1016     }
1017     function dcgettext($domain, $msgid, $category) {
1018     return _dcgettext($domain, $msgid, $category);
1019     }
1020     - function dcngettext($domain, $single, $plural, $number, $category) {
1021     - return _dcngettext($domain, $single, $plural, $number, $category);
1022     + function dcngettext($domain, $singular, $plural, $number, $category) {
1023     + return _dcngettext($domain, $singular, $plural, $number, $category);
1024     }
1025     function pgettext($context, $msgid) {
1026     return _pgettext($context, $msgid);
1027     }
1028     - function npgettext($context, $single, $plural, $number) {
1029     - return _npgettext($context, $single, $plural, $number);
1030     + function npgettext($context, $singular, $plural, $number) {
1031     + return _npgettext($context, $singular, $plural, $number);
1032     }
1033     function dpgettext($domain, $context, $msgid) {
1034     return _dpgettext($domain, $context, $msgid);
1035     }
1036     - function dnpgettext($domain, $context, $single, $plural, $number) {
1037     - return _dnpgettext($domain, $context, $single, $plural, $number);
1038     + function dnpgettext($domain, $context, $singular, $plural, $number) {
1039     + return _dnpgettext($domain, $context, $singular, $plural, $number);
1040     }
1041     function dcpgettext($domain, $context, $msgid, $category) {
1042     return _dcpgettext($domain, $context, $msgid, $category);
1043     }
1044     - function dcnpgettext($domain, $context, $single, $plural,
1045     + function dcnpgettext($domain, $context, $singular, $plural,
1046     $number, $category) {
1047     - return _dcnpgettext($domain, $context, $single, $plural,
1048     + return _dcnpgettext($domain, $context, $singular, $plural,
1049     $number, $category);
1050     }
1051     }
1052     diff -Nur dl-0.18.1/htdocs/include/lib/gettext/gettext.php dl-master/htdocs/include/lib/gettext/gettext.php
1053     --- dl-0.18.1/htdocs/include/lib/gettext/gettext.php 2017-09-06 12:08:38.000000000 -0400
1054     +++ dl-master/htdocs/include/lib/gettext/gettext.php 2021-03-16 18:59:58.000000000 -0400
1055     @@ -21,6 +21,8 @@
1056    
1057     */
1058    
1059     +require('plurals.php');
1060     +
1061     /**
1062     * Provides a simple gettext replacement that works independently from
1063     * the system's gettext abilities.
1064     @@ -270,41 +272,6 @@
1065     }
1066    
1067     /**
1068     - * Sanitize plural form expression for use in PHP eval call.
1069     - *
1070     - * @access private
1071     - * @return string sanitized plural form expression
1072     - */
1073     - function sanitize_plural_expression($expr) {
1074     - // Get rid of disallowed characters.
1075     - $expr = preg_replace('@[^a-zA-Z0-9_:;\(\)\?\|\&=!<>+*/\%-]@', '', $expr);
1076     -
1077     - // Add parenthesis for tertiary '?' operator.
1078     - $expr .= ';';
1079     - $res = '';
1080     - $p = 0;
1081     - for ($i = 0; $i < strlen($expr); $i++) {
1082     - $ch = $expr[$i];
1083     - switch ($ch) {
1084     - case '?':
1085     - $res .= ' ? (';
1086     - $p++;
1087     - break;
1088     - case ':':
1089     - $res .= ') : (';
1090     - break;
1091     - case ';':
1092     - $res .= str_repeat( ')', $p) . ';';
1093     - $p = 0;
1094     - break;
1095     - default:
1096     - $res .= $ch;
1097     - }
1098     - }
1099     - return $res;
1100     - }
1101     -
1102     - /**
1103     * Parse full PO header and extract only plural forms line.
1104     *
1105     * @access private
1106     @@ -330,14 +297,14 @@
1107     $this->load_tables();
1108    
1109     // cache header field for plural forms
1110     - if (! is_string($this->pluralheader)) {
1111     + if ($this->pluralheader === NULL) {
1112     if ($this->enable_cache) {
1113     $header = $this->cache_translations[""];
1114     } else {
1115     $header = $this->get_translation_string(0);
1116     }
1117     $expr = $this->extract_plural_forms_header_from_po_header($header);
1118     - $this->pluralheader = $this->sanitize_plural_expression($expr);
1119     + $this->pluralheader = new PluralHeader($expr);
1120     }
1121     return $this->pluralheader;
1122     }
1123     @@ -350,16 +317,16 @@
1124     * @return int array index of the right plural form
1125     */
1126     function select_string($n) {
1127     - $string = $this->get_plural_forms();
1128     - $string = str_replace('nplurals',"\$total",$string);
1129     - $string = str_replace("n",$n,$string);
1130     - $string = str_replace('plural',"\$plural",$string);
1131     + if (!is_int($n)) {
1132     + throw new InvalidArgumentException(
1133     + "Select_string only accepts integers: " . $n);
1134     + }
1135     + $plural_header = $this->get_plural_forms();
1136     + $plural = $plural_header->expression->evaluate($n);
1137    
1138     - $total = 0;
1139     - $plural = 0;
1140     + if ($plural < 0) $plural = 0;
1141     + if ($plural >= $plural_header->total) $plural = $plural_header->total - 1;
1142    
1143     - eval("$string");
1144     - if ($plural >= $total) $plural = $total - 1;
1145     return $plural;
1146     }
1147    
1148     @@ -409,12 +376,23 @@
1149    
1150     function pgettext($context, $msgid) {
1151     $key = $context . chr(4) . $msgid;
1152     - return $this->translate($key);
1153     + $ret = $this->translate($key);
1154     + if (strpos($ret, "\004") !== FALSE) {
1155     + return $msgid;
1156     + } else {
1157     + return $ret;
1158     + }
1159     }
1160    
1161     function npgettext($context, $singular, $plural, $number) {
1162     - $singular = $context . chr(4) . $singular;
1163     - return $this->ngettext($singular, $plural, $number);
1164     + $key = $context . chr(4) . $singular;
1165     + $ret = $this->ngettext($key, $plural, $number);
1166     + if (strpos($ret, "\004") !== FALSE) {
1167     + return $singular;
1168     + } else {
1169     + return $ret;
1170     + }
1171     +
1172     }
1173     }
1174    
1175     diff -Nur dl-0.18.1/htdocs/include/lib/gettext/plurals.php dl-master/htdocs/include/lib/gettext/plurals.php
1176     --- dl-0.18.1/htdocs/include/lib/gettext/plurals.php 1969-12-31 19:00:00.000000000 -0500
1177     +++ dl-master/htdocs/include/lib/gettext/plurals.php 2021-03-16 18:59:58.000000000 -0400
1178     @@ -0,0 +1,461 @@
1179     +<?php
1180     +/*
1181     + Copyright (c) 2020 Sunil Mohan Adapa <sunil at medhas dot org>
1182     +
1183     + Drop in replacement for native gettext.
1184     +
1185     + This file is part of PHP-gettext.
1186     +
1187     + PHP-gettext is free software; you can redistribute it and/or modify
1188     + it under the terms of the GNU General Public License as published by
1189     + the Free Software Foundation; either version 2 of the License, or
1190     + (at your option) any later version.
1191     +
1192     + PHP-gettext is distributed in the hope that it will be useful,
1193     + but WITHOUT ANY WARRANTY; without even the implied warranty of
1194     + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1195     + GNU General Public License for more details.
1196     +
1197     + You should have received a copy of the GNU General Public License
1198     + along with PHP-gettext; if not, write to the Free Software
1199     + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
1200     +
1201     +*/
1202     +
1203     +/**
1204     + * Lexical analyzer for gettext plurals expression. Takes a string to parse
1205     + * during construction and returns a single token every time peek() or
1206     + * fetch_token() are called. The special string '__END__' is returned if there
1207     + * are no more tokens to be read. Spaces are ignored during tokenization.
1208     + */
1209     +class PluralsLexer {
1210     + private $string;
1211     + private $position;
1212     +
1213     + /**
1214     + * Constructor
1215     + *
1216     + * @param string string Contains the value gettext plurals expression to
1217     + * analyze.
1218     + */
1219     + public function __construct(string $string) {
1220     + $this->string = $string;
1221     + $this->position = 0;
1222     + }
1223     +
1224     + /**
1225     + * Return the next token and the length to advance the read position without
1226     + * actually advancing the read position. Tokens for operators and variables
1227     + * are simple strings containing the operator or variable. If there are no
1228     + * more token to provide, the special value ['__END__', 0] is returned. If
1229     + * there was an unexpected input an Exception is raised.
1230     + *
1231     + * @access private
1232     + * @throws Exception If there is unexpected input in the provided string.
1233     + * @return array The next token and length to advance the current position.
1234     + */
1235     + private function _tokenize() {
1236     + $buf = $this->string;
1237     +
1238     + // Consume all spaces until the next token
1239     + $index = $this->position;
1240     + while ($index < strlen($buf) && $buf[$index] == ' ') {
1241     + $index++;
1242     + }
1243     + $this->position = $index;
1244     +
1245     + // Return special token if next of the string is reached.
1246     + if (strlen($buf) - $index == 0) {
1247     + return ['__END__', 0];
1248     + }
1249     +
1250     + // Operators with two characters
1251     + $doubles = ['==', '!=', '>=', '<=', '&&', '||'];
1252     + $next = substr($buf, $index, 2);
1253     + if (in_array($next, $doubles)) {
1254     + return [$next, 2];
1255     + }
1256     +
1257     + // Operators with single character or variable 'n'.
1258     + $singles = [
1259     + 'n', '(', ')', '?', ':', '+', '-', '*', '/', '%', '!', '>', '<'];
1260     + if (in_array($buf[$index], $singles)) {
1261     + return [$buf[$index], 1];
1262     + }
1263     +
1264     + // Whole number constants, return an integer.
1265     + $digits = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
1266     + $pos = $index;
1267     + while ($pos < strlen($buf) && in_array($buf[$pos], $digits)) {
1268     + $pos++;
1269     + }
1270     + if ($pos != $index) {
1271     + $length = $pos - $index;
1272     + return [(int)substr($buf, $index, $length), $length];
1273     + }
1274     +
1275     + // Throw and exception for all other unexpected input in the string.
1276     + throw new Exception('Lexical analysis failed');
1277     + }
1278     +
1279     + /**
1280     + * Return the next token without actually advancing the read position.
1281     + * Tokens for operators and variables are simple strings containing the
1282     + * operator or variable. If there are no more tokens to provide, the special
1283     + * value '__END__' is returned. If there was an unexpected input an
1284     + * Exception is raised.
1285     + *
1286     + * @throws Exception If there is unexpected input in the provided string.
1287     + * @return string The next token.
1288     + */
1289     + public function peek() {
1290     + list($token, $length) = $this->_tokenize();
1291     + return $token;
1292     + }
1293     +
1294     + /**
1295     + * Return the next token after advancing the read position. Tokens for
1296     + * operators and variables are simple strings containing the operator or
1297     + * variable. If there are no more token to provide, the special value
1298     + * '__END__' is returned. If there was an unexpected input an Exception is
1299     + * raised.
1300     + *
1301     + * @throws Exception If there is unexpected input in the provided string.
1302     + * @return string The next token.
1303     + */
1304     + public function fetch_token() {
1305     + list($token, $length) = $this->_tokenize();
1306     + $this->position += $length;
1307     + return $token;
1308     + }
1309     +}
1310     +
1311     +/**
1312     + * A parsed representation of the gettext plural expression. This is a tree
1313     + * containing further expressions depending on how nested the given input is.
1314     + * Calling the evaluate() function computes the value of the expression if the
1315     + * variable 'n' is set a certain value. This is used to decide which plural
1316     + * string translation to use based on the number items at hand.
1317     + */
1318     +class PluralsExpression {
1319     + private $operator;
1320     + private $operands;
1321     +
1322     + const BINARY_OPERATORS = [
1323     + '==', '!=', '>=', '<=', '&&', '||', '+', '-', '*', '/', '%', '>', '<'];
1324     + const UNARY_OPERATORS = ['!'];
1325     +
1326     + /**
1327     + * Constructor
1328     + *
1329     + * @param string Operator for the expression.
1330     + * @param (int|string|PuralsExpression)[] Variable number of operands of the
1331     + * expression. One int operand is expected in case the operator is 'const'.
1332     + * One string operand with value 'n' is expected in case the operator is
1333     + * 'var'. For all other operators, the operands much be objects of type
1334     + * PluralExpression. Unary operators expect one operand, binary operators
1335     + * expect two operands and trinary operators expect three operands.
1336     + */
1337     + public function __construct($operator, ...$operands) {
1338     + $this->operator = $operator;
1339     + $this->operands = $operands;
1340     + }
1341     +
1342     + /**
1343     + * Return a parenthesized string representation of the expression for
1344     + * debugging purposes.
1345     + *
1346     + * @return string A string representation of the expression.
1347     + */
1348     + public function to_string() {
1349     + if ($this->operator == 'const' || $this->operator == 'var') {
1350     + return $this->operands[0];
1351     + } elseif (in_array($this->operator, self::BINARY_OPERATORS)) {
1352     + return sprintf(
1353     + "(%s %s %s)", $this->operands[0]->to_string(), $this->operator,
1354     + $this->operands[1]->to_string());
1355     + } elseif (in_array($this->operator, self::UNARY_OPERATORS)) {
1356     + return sprintf(
1357     + "(%s %s)", $this->operator, $this->operands[0]->to_string());
1358     + } elseif ($this->operator == '?') {
1359     + return sprintf(
1360     + "(%s ? %s : %s)", $this->operands[0]->to_string(),
1361     + $this->operands[1]->to_string(),
1362     + $this->operands[2]->to_string());
1363     + }
1364     + }
1365     +
1366     + /**
1367     + * Return the computed value of the expression if the variable 'n' is set to
1368     + * a certain value.
1369     + *
1370     + * @param int The value of the variable n to use when evaluating.
1371     + * @throws Exception If the expression has been constructed incorrectly.
1372     + * @return int The value of the expression after evaluation.
1373     + */
1374     + public function evaluate($n) {
1375     + if (!in_array($this->operator, ['const', 'var'])) {
1376     + $operand1 = $this->operands[0]->evaluate($n);
1377     + }
1378     + if (in_array($this->operator, self::BINARY_OPERATORS) ||
1379     + $this->operator == '?') {
1380     + $operand2 = $this->operands[1]->evaluate($n);
1381     + }
1382     + if ($this->operator == '?') {
1383     + $operand3 = $this->operands[2]->evaluate($n);
1384     + }
1385     +
1386     + switch ($this->operator) {
1387     + case 'const':
1388     + return $this->operands[0];
1389     + case 'var':
1390     + return $n;
1391     + case '!':
1392     + return !($operand1);
1393     + case '==':
1394     + return $operand1 == $operand2;
1395     + case '!=':
1396     + return $operand1 != $operand2;
1397     + case '>=':
1398     + return $operand1 >= $operand2;
1399     + case '<=':
1400     + return $operand1 <= $operand2;
1401     + case '>':
1402     + return $operand1 > $operand2;
1403     + case '<':
1404     + return $operand1 < $operand2;
1405     + case '&&':
1406     + return $operand1 && $operand2;
1407     + case '||':
1408     + return $operand1 || $operand2;
1409     + case '+':
1410     + return $operand1 + $operand2;
1411     + case '-':
1412     + return $operand1 - $operand2;
1413     + case '*':
1414     + return $operand1 * $operand2;
1415     + case '/':
1416     + return (int)($operand1 / $operand2);
1417     + case '%':
1418     + return $operand1 % $operand2;
1419     + case '?':
1420     + return $operand1 ? $operand2 : $operand3;
1421     + default:
1422     + throw new Exception('Invalid expression');
1423     + }
1424     + }
1425     +}
1426     +
1427     +/**
1428     + * A simple operator-precedence parser for gettext plural expressions. Takes a
1429     + * string during construction and returns a PluralsExpression tree when
1430     + * parse() is called.
1431     + */
1432     +class PluralsParser {
1433     + private $lexer;
1434     +
1435     + /*
1436     + * Operator precedence. The parsing only happens with minimum precedence of
1437     + * 0. However, ':' and ')' exist here to make sure that parsing does not
1438     + * proceed beyond them when they are not to be parsed.
1439     + */
1440     + private const PREC = [
1441     + ':' => -1, '?' => 0, '||' => 1, '&&' => 2, '==' => 3, '!=' => 3,
1442     + '>' => 4, '<' => 4, '>=' => 4, '<=' => 4, '+' => 5, '-' => 5, '*' => 6,
1443     + '/' => 6, '%' => 6, '!' => 7, '__END__' => -1, ')' => -1
1444     + ];
1445     +
1446     + // List of right associative operators
1447     + private const RIGHT_ASSOC = ['?'];
1448     +
1449     + /**
1450     + * Constructor
1451     + *
1452     + * @param string string the plural expression to be parsed.
1453     + */
1454     + public function __construct(string $string) {
1455     + $this->lexer = new PluralsLexer($string);
1456     + }
1457     +
1458     + /**
1459     + * Expect a primary next for parsing and return a PluralsExpression or throw
1460     + * and exception otherwise. A primary can be the variable 'n', an whole
1461     + * number constant, a unary operator expression string with '!', or a
1462     + * parenthesis expression.
1463     + *
1464     + * @throws Exception If the next token is not a primary or if parenthesis
1465     + * expression is not closes properly with ')'.
1466     + * @return PluralsExpression That is constructed from the parsed primary.
1467     + */
1468     + private function _parse_primary() {
1469     + $token = $this->lexer->fetch_token();
1470     + if ($token === 'n') {
1471     + return new PluralsExpression('var', 'n');
1472     + } elseif (is_int($token)) {
1473     + return new PluralsExpression('const', (int)$token);
1474     + } elseif ($token === '!') {
1475     + return new PluralsExpression('!', $this->_parse_primary());
1476     + } elseif ($token === '(') {
1477     + $result = $this->_parse($this->_parse_primary(), 0);
1478     + if ($this->lexer->fetch_token() != ')') {
1479     + throw new Exception('Mismatched parenthesis');
1480     + }
1481     + return $result;
1482     + }
1483     +
1484     + throw new Exception('Primary expected');
1485     + }
1486     +
1487     + /**
1488     + * Fetch an operator from the lexical analyzer and test for it. Optionally
1489     + * advance the position of the lexical analyzer to next token. Raise
1490     + * exception if the token retrieved is not an operator.
1491     + *
1492     + * @access private
1493     + * @param bool peek A flag to indicate whether the position of the lexical
1494     + * analyzer should *not* be advanced. If false, the lexical analyzer is
1495     + * advanced by one token.
1496     + * @throws Exception If the token read is not an operator.
1497     + * @return string The operator that has been fetched from the lexical
1498     + * analyzer.
1499     + */
1500     + private function _parse_operator($peek) {
1501     + if ($peek) {
1502     + $token = $this->lexer->peek();
1503     + } else {
1504     + $token = $this->lexer->fetch_token();
1505     + }
1506     +
1507     + if ($token !== NULL && !array_key_exists($token, self::PREC)) {
1508     + throw new Exception('Operator expected');
1509     + }
1510     + return $token;
1511     + }
1512     +
1513     + /**
1514     + * A parsing method suitable for recursion.
1515     + *
1516     + * @access private
1517     + * @param ParserExpression left_side A pre-parsed left-hand side expression
1518     + * of the file expression to be constructed. This helps with recursion.
1519     + * @param int min_precedence The minimum value of precedence for the
1520     + * operators to be considered for parsing. Parsing will stop and current
1521     + * expression is returned if an operator of a lower precedence is
1522     + * encountered.
1523     + * @throws Exception If the input string does not conform to the grammar of
1524     + * the gettext plural expression.
1525     + * @return ParserExpression A complete expression after parsing.
1526     + */
1527     + private function _parse($left_side, $min_precedence) {
1528     + $next_token = $this->_parse_operator(true);
1529     +
1530     + while (self::PREC[$next_token] >= $min_precedence) {
1531     + $operator = $this->_parse_operator(false);
1532     + $right_side = $this->_parse_primary();
1533     +
1534     + $next_token = $this->_parse_operator(true);
1535     +
1536     + /*
1537     + * Consume (recursively) into right hand side all expressions of higher
1538     + * precedence.
1539     + */
1540     + while ((self::PREC[$operator] < self::PREC[$next_token]) ||
1541     + ((self::PREC[$operator] == self::PREC[$next_token]) &&
1542     + in_array($operator, self::RIGHT_ASSOC))) {
1543     + $right_side = $this->_parse(
1544     + $right_side, self::PREC[$next_token]);
1545     + $next_token = $this->_parse_operator(true);
1546     + }
1547     +
1548     + if ($operator != '?') {
1549     + /*
1550     + * Handling for all binary operators. Consume into left hand side all
1551     + * expressions of equal precedence.
1552     + */
1553     + $left_side = new PluralsExpression($operator, $left_side, $right_side);
1554     + } else {
1555     + // Special handling for (a ? b : c) expression
1556     + $operator = $this->lexer->fetch_token();
1557     + if ($operator != ':') {
1558     + throw new Exception('Invalid ? expression');
1559     + }
1560     +
1561     + $right_side2 = $this->_parse(
1562     + $this->_parse_primary(), self::PREC[$operator] + 1);
1563     + $next_token = $this->_parse_operator(true);
1564     + $left_side = new PluralsExpression(
1565     + '?', $left_side, $right_side, $right_side2);
1566     + }
1567     + }
1568     + return $left_side;
1569     + }
1570     +
1571     + /**
1572     + * A simple implementation of an operator-precedence parser. See:
1573     + * https://en.wikipedia.org/wiki/Operator-precedence_parser for an analysis
1574     + * of the algorithm.
1575     + *
1576     + * @throws Exception If the input string does not conform to the grammar of
1577     + * the gettext plural expression.
1578     + * @return ParserExpression A complete expression after parsing.
1579     + */
1580     + public function parse() {
1581     + $expression = $this->_parse($this->_parse_primary(), 0);
1582     + // Special handling for an extra ')' at the end.
1583     + if ($this->lexer->peek() != '__END__') {
1584     + throw new Exception('Could not parse completely');
1585     + }
1586     + return $expression;
1587     + }
1588     +}
1589     +
1590     +/**
1591     + * Provides a class to parse the value of the 'Plural-Forms:' header in the
1592     + * gettext translation files. Holds the expression tree and the number of
1593     + * plurals after parsing. Parsing happens during construction which takes as
1594     + * its only argument the string to parse. Error during parsing are silently
1595     + * suppressed and the fallback behavior is used with the value for Germanic
1596     + * languages as follows: "nplurals=2; plural=n == 1 ? 0 : 1;".
1597     + */
1598     +class PluralHeader {
1599     + public $total;
1600     + public $expression;
1601     +
1602     + /**
1603     + * Constructor
1604     + *
1605     + * @param string The value of the Plural-Forms: header as seen in .po files.
1606     + */
1607     + function __construct($string) {
1608     + try {
1609     + list($total, $expression) = $this->parse($string);
1610     + } catch (Exception $e) {
1611     + $string = "nplurals=2; plural=n == 1 ? 0 : 1;";
1612     + list($total, $expression) = $this->parse($string);
1613     + }
1614     + $this->total = $total;
1615     + $this->expression = $expression;
1616     + }
1617     +
1618     + /**
1619     + * Return the number of plural forms and the parsed expression tree.
1620     + *
1621     + * @access private
1622     + * @param string string The value of the Plural-Forms: header.
1623     + * @throws Exception If the string could not be parsed.
1624     + * @return array The number of plural forms and parsed expression tree.
1625     + */
1626     + private function parse($string) {
1627     + $regex = "/^\s*nplurals\s*=\s*(\d+)\s*;\s*plural\s*=([^;]+);/i";
1628     + if (preg_match($regex, $string, $matches)) {
1629     + $total = (int)$matches[1];
1630     + $expression_string = $matches[2];
1631     + } else {
1632     + throw new Exception('Invalid header value');
1633     + }
1634     +
1635     + $parser = new PluralsParser($expression_string);
1636     + $expression = $parser->parse();
1637     + return [$total, $expression];
1638     + }
1639     +}
1640     Les fichiers binaires dl-0.18.1/htdocs/include/locale/cs_CZ/LC_MESSAGES/messages.mo et dl-master/htdocs/include/locale/cs_CZ/LC_MESSAGES/messages.mo sont différents
1641     Les fichiers binaires dl-0.18.1/htdocs/include/locale/de_DE/LC_MESSAGES/messages.mo et dl-master/htdocs/include/locale/de_DE/LC_MESSAGES/messages.mo sont différents
1642     Les fichiers binaires dl-0.18.1/htdocs/include/locale/es_ES/LC_MESSAGES/messages.mo et dl-master/htdocs/include/locale/es_ES/LC_MESSAGES/messages.mo sont différents
1643     Les fichiers binaires dl-0.18.1/htdocs/include/locale/fr_FR/LC_MESSAGES/messages.mo et dl-master/htdocs/include/locale/fr_FR/LC_MESSAGES/messages.mo sont différents
1644     Les fichiers binaires dl-0.18.1/htdocs/include/locale/it_IT/LC_MESSAGES/messages.mo et dl-master/htdocs/include/locale/it_IT/LC_MESSAGES/messages.mo sont différents
1645     Les fichiers binaires dl-0.18.1/htdocs/include/locale/ja_JP/LC_MESSAGES/messages.mo et dl-master/htdocs/include/locale/ja_JP/LC_MESSAGES/messages.mo sont différents
1646     Les fichiers binaires dl-0.18.1/htdocs/include/locale/nl_NL/LC_MESSAGES/messages.mo et dl-master/htdocs/include/locale/nl_NL/LC_MESSAGES/messages.mo sont différents
1647     Les fichiers binaires dl-0.18.1/htdocs/include/locale/pt_BR/LC_MESSAGES/messages.mo et dl-master/htdocs/include/locale/pt_BR/LC_MESSAGES/messages.mo sont différents
1648     Les fichiers binaires dl-0.18.1/htdocs/include/locale/ru_RU/LC_MESSAGES/messages.mo et dl-master/htdocs/include/locale/ru_RU/LC_MESSAGES/messages.mo sont différents
1649     Les fichiers binaires dl-0.18.1/htdocs/include/locale/zh_CN/LC_MESSAGES/messages.mo et dl-master/htdocs/include/locale/zh_CN/LC_MESSAGES/messages.mo sont différents
1650     diff -Nur dl-0.18.1/htdocs/include/msg.php dl-master/htdocs/include/msg.php
1651     --- dl-0.18.1/htdocs/include/msg.php 2017-09-06 12:08:38.000000000 -0400
1652     +++ dl-master/htdocs/include/msg.php 2021-03-16 18:59:58.000000000 -0400
1653     @@ -5,6 +5,7 @@
1654     {
1655     global $emailSubjectPrefix;
1656     $subject = $emailSubjectPrefix . sprintf(T_("download link to %s"), $DATA['name']);
1657     + $body = "";
1658     if(!empty($DATA['cmt']))
1659     $body .= T_("Ticket comment:") . " " . $DATA['cmt'] . ".\n\n";
1660     $body .= T_("URL:") . " " . ticketUrl($DATA) . "\n";
1661     @@ -44,6 +45,7 @@
1662     {
1663     global $emailSubjectPrefix;
1664     $subject = $emailSubjectPrefix . T_("upload grant link");
1665     + $body = "";
1666     if(!empty($DATA['cmt']))
1667     $body .= T_("Grant comment:") . " " . $DATA['cmt'] . ".\n\n";
1668     $body .= T_("URL:") . " " . grantUrl($DATA) . "\n";
1669     @@ -73,7 +75,7 @@
1670     global $dateFmtShort, $emailSubjectPrefix;
1671     $subject = $emailSubjectPrefix . sprintf(T_("download link for grant %s"), grantStr($GRANT));
1672     $body = sprintf(T_("Your grant %s has been used on %s by %s."),
1673     - grantStr($GRANT), date($dateFmtShort, $GRANT["time"]),
1674     + grantStr($GRANT), date($dateFmtShort, $GRANT["last_stamp"]),
1675     $_SERVER["REMOTE_ADDR"]) . "\n";
1676     if(!empty($GRANT['cmt']))
1677     $body .= T_("Grant comment:") . " " . $GRANT['cmt'] . ".\n\n";
1678     diff -Nur dl-0.18.1/htdocs/include/newgrantr.php dl-master/htdocs/include/newgrantr.php
1679     --- dl-0.18.1/htdocs/include/newgrantr.php 2017-09-06 12:08:38.000000000 -0400
1680     +++ dl-master/htdocs/include/newgrantr.php 2021-03-16 18:59:58.000000000 -0400
1681     @@ -12,13 +12,14 @@
1682     <div>
1683     <label class="description">
1684     <?php printf(T_("Your grant %s"), htmlEntUTF8(grantStr($DATA))); ?>
1685     - </label>
1686     - <p><span class="ticketid"><?php echo htmlentities($url); ?></span></p>
1687     -<?php
1688     + </label><p><a class="ticketid" href="<?php echo $url; ?>">
1689     + <?php echo htmlentities($url); ?>
1690     + </a></p>
1691     + <?php
1692     if($DATA['pass'])
1693     {
1694     echo "<p>" . T_("The required password is:") . " <tt>"
1695     - . htmlEntUTF8($DATA['pass']) . "</tt></p>";
1696     + . htmlEntUTF8($DATA['pass']) . "</tt></p>";
1697     }
1698    
1699     if($DATA['sent_email'])
1700     @@ -27,18 +28,18 @@
1701     $addrs = getEMailAddrs($DATA['sent_email']);
1702     foreach($addrs as &$addr)
1703     {
1704     - $addr = '<a href="mailto:' . urlencode($addr) . '">'
1705     - . htmlentities($addr) . '</a>';
1706     + $addr = '<a href="mailto:' . rawurlencode($addr) . '">'
1707     + . htmlentities($addr) . '</a>';
1708     }
1709     echo join(', ', $addrs);
1710     echo '</p>';
1711     }
1712     -?>
1713     + ?>
1714     </div>
1715    
1716     <span class="buttons">
1717     + <input type="button" onclick="copyToClipboard('<?php echo htmlentities($url); ?>');" value="<?php echo T_("Copy to clipboard"); ?>"/>
1718     <input type="button" onclick="document.location='<?php echo htmlentities($mailto); ?>';" value="<?php echo T_("Send via e-mail"); ?>"/>
1719     - <input type="button" onclick="document.location='<?php echo htmlentities($url); ?>';" value="<?php echo T_("Upload"); ?>"/>
1720     </span>
1721    
1722     <?php
1723     diff -Nur dl-0.18.1/htdocs/include/newticketr.php dl-master/htdocs/include/newticketr.php
1724     --- dl-0.18.1/htdocs/include/newticketr.php 2017-09-06 12:08:38.000000000 -0400
1725     +++ dl-master/htdocs/include/newticketr.php 2021-03-16 18:59:58.000000000 -0400
1726     @@ -12,13 +12,14 @@
1727     <div>
1728     <label class="description">
1729     <?php printf(T_("Your ticket %s"), htmlEntUTF8(ticketStr($DATA))); ?>
1730     - </label>
1731     - <p><span class="ticketid"><?php echo htmlentities($url); ?></span></p>
1732     -<?php
1733     + </label><p><a class="ticketid" href="<?php echo $url; ?>">
1734     + <?php echo htmlentities($url); ?>
1735     + </a></p>
1736     + <?php
1737     if($DATA['pass'])
1738     {
1739     echo "<p>" . T_("The required password is:") . " <tt>"
1740     - . htmlEntUTF8($DATA['pass']) . "</tt></p>";
1741     + . htmlEntUTF8($DATA['pass']) . "</tt></p>";
1742     }
1743    
1744     if($DATA['sent_email'])
1745     @@ -27,18 +28,18 @@
1746     $addrs = getEMailAddrs($DATA['sent_email']);
1747     foreach($addrs as &$addr)
1748     {
1749     - $addr = '<a href="mailto:' . urlencode($addr) . '">'
1750     - . htmlentities($addr) . '</a>';
1751     + $addr = '<a href="mailto:' . rawurlencode($addr) . '">'
1752     + . htmlentities($addr) . '</a>';
1753     }
1754     echo join(', ', $addrs);
1755     echo '</p>';
1756     }
1757     -?>
1758     + ?>
1759     </div>
1760    
1761     <span class="buttons">
1762     + <input type="button" onclick="copyToClipboard('<?php echo htmlentities($url); ?>');" value="<?php echo T_("Copy to clipboard"); ?>"/>
1763     <input type="button" onclick="document.location='<?php echo htmlentities($mailto); ?>';" value="<?php echo T_("Send via e-mail"); ?>"/>
1764     - <input type="button" onclick="document.location='<?php echo htmlentities($url); ?>';" value="<?php echo T_("Download"); ?>"/>
1765     </span>
1766    
1767     <?php
1768     diff -Nur dl-0.18.1/htdocs/include/scripts/db/mysql.sql dl-master/htdocs/include/scripts/db/mysql.sql
1769     --- dl-0.18.1/htdocs/include/scripts/db/mysql.sql 2017-09-06 12:08:38.000000000 -0400
1770     +++ dl-master/htdocs/include/scripts/db/mysql.sql 2021-03-16 18:59:58.000000000 -0400
1771     @@ -1,4 +1,4 @@
1772     -SET SQL_MODE=ANSI_QUOTES;
1773     +SET SQL_MODE = ANSI;
1774     CREATE TABLE config (name VARCHAR(255) PRIMARY KEY, value VARCHAR(255));
1775     INSERT INTO config (name, value) VALUES('version','0.18');
1776     CREATE TABLE role (id INTEGER PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255) UNIQUE NOT NULL, admin BOOLEAN NOT NULL, parent_role_id INTEGER REFERENCES role (id));
1777     diff -Nur dl-0.18.1/htdocs/include/users.php dl-master/htdocs/include/users.php
1778     --- dl-0.18.1/htdocs/include/users.php 2017-09-06 12:08:38.000000000 -0400
1779     +++ dl-master/htdocs/include/users.php 2021-03-16 18:59:58.000000000 -0400
1780     @@ -124,7 +124,7 @@
1781     echo "<td>" . htmlEntUTF8($DATA['name']) . "</td>";
1782     echo "<td><input type=\"hidden\" name=\"user[]\" value=\""
1783     . htmlEntUTF8($DATA['name']) . "\"/><input class=\"element text\""
1784     - . " type=\"text\" name=\"pass[]\"></td>";
1785     + . " type=\"password\" name=\"pass[]\"></td>";
1786    
1787     // role
1788     echo '<td data-sort-value="' . $DATA['admin'] . '">'
1789     diff -Nur dl-0.18.1/htdocs/static/dl.js dl-master/htdocs/static/dl.js
1790     --- dl-0.18.1/htdocs/static/dl.js 2017-09-06 12:08:38.000000000 -0400
1791     +++ dl-master/htdocs/static/dl.js 2021-03-16 18:59:58.000000000 -0400
1792     @@ -117,6 +117,28 @@
1793     }
1794    
1795    
1796     +// clipboard related
1797     +function copyToClipboard(str)
1798     +{
1799     + if('queryCommandSupported' in document && document.queryCommandSupported("copy"))
1800     + {
1801     + // the "proper" way
1802     + var el = document.createElement('textarea');
1803     + el.value = str;
1804     + document.body.appendChild(el);
1805     + el.focus();
1806     + el.setSelectionRange(0, str.length);
1807     + document.execCommand('copy');
1808     + document.body.removeChild(el);
1809     + }
1810     + else if("clipboardData" in window)
1811     + {
1812     + // the way it *should* be
1813     + window.clipboardData.setData('Text', str);
1814     + }
1815     +}
1816     +
1817     +
1818     // UI/form
1819     function toggleAdvanced(set)
1820     {
1821     @@ -238,6 +260,7 @@
1822    
1823     // replace current document with response
1824     document.documentElement.innerHTML = ev.target.response;
1825     + window.scrollTo(0, 0);
1826     $.cache = {};
1827     }
1828    
1829     diff -Nur dl-0.18.1/htdocs/static/guide/de_DE/index.html dl-master/htdocs/static/guide/de_DE/index.html
1830     --- dl-0.18.1/htdocs/static/guide/de_DE/index.html 2017-09-06 12:09:36.000000000 -0400
1831     +++ dl-master/htdocs/static/guide/de_DE/index.html 1969-12-31 19:00:00.000000000 -0500
1832     @@ -1,467 +0,0 @@
1833     -<?xml version="1.0" encoding="utf-8" ?>
1834     -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1835     -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de_DE" lang="de_DE">
1836     -<head>
1837     -<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
1838     -<meta name="generator" content="Docutils 0.13.1: http://docutils.sourceforge.net/" />
1839     -<title>Download ticket service</title>
1840     -<style type="text/css">
1841     -
1842     -/*
1843     -:Author: David Goodger (goodger@python.org)
1844     -:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
1845     -:Copyright: This stylesheet has been placed in the public domain.
1846     -
1847     -Default cascading style sheet for the HTML output of Docutils.
1848     -
1849     -See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
1850     -customize this style sheet.
1851     -*/
1852     -
1853     -/* used to remove borders from tables and images */
1854     -.borderless, table.borderless td, table.borderless th {
1855     - border: 0 }
1856     -
1857     -table.borderless td, table.borderless th {
1858     - /* Override padding for "table.docutils td" with "! important".
1859     - The right padding separates the table cells. */
1860     - padding: 0 0.5em 0 0 ! important }
1861     -
1862     -.first {
1863     - /* Override more specific margin styles with "! important". */
1864     - margin-top: 0 ! important }
1865     -
1866     -.last, .with-subtitle {
1867     - margin-bottom: 0 ! important }
1868     -
1869     -.hidden {
1870     - display: none }
1871     -
1872     -.subscript {
1873     - vertical-align: sub;
1874     - font-size: smaller }
1875     -
1876     -.superscript {
1877     - vertical-align: super;
1878     - font-size: smaller }
1879     -
1880     -a.toc-backref {
1881     - text-decoration: none ;
1882     - color: black }
1883     -
1884     -blockquote.epigraph {
1885     - margin: 2em 5em ; }
1886     -
1887     -dl.docutils dd {
1888     - margin-bottom: 0.5em }
1889     -
1890     -object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
1891     - overflow: hidden;
1892     -}
1893     -
1894     -/* Uncomment (and remove this text!) to get bold-faced definition list terms
1895     -dl.docutils dt {
1896     - font-weight: bold }
1897     -*/
1898     -
1899     -div.abstract {
1900     - margin: 2em 5em }
1901     -
1902     -div.abstract p.topic-title {
1903     - font-weight: bold ;
1904     - text-align: center }
1905     -
1906     -div.admonition, div.attention, div.caution, div.danger, div.error,
1907     -div.hint, div.important, div.note, div.tip, div.warning {
1908     - margin: 2em ;
1909     - border: medium outset ;
1910     - padding: 1em }
1911     -
1912     -div.admonition p.admonition-title, div.hint p.admonition-title,
1913     -div.important p.admonition-title, div.note p.admonition-title,
1914     -div.tip p.admonition-title {
1915     - font-weight: bold ;
1916     - font-family: sans-serif }
1917     -
1918     -div.attention p.admonition-title, div.caution p.admonition-title,
1919     -div.danger p.admonition-title, div.error p.admonition-title,
1920     -div.warning p.admonition-title, .code .error {
1921     - color: red ;
1922     - font-weight: bold ;
1923     - font-family: sans-serif }
1924     -
1925     -/* Uncomment (and remove this text!) to get reduced vertical space in
1926     - compound paragraphs.
1927     -div.compound .compound-first, div.compound .compound-middle {
1928     - margin-bottom: 0.5em }
1929     -
1930     -div.compound .compound-last, div.compound .compound-middle {
1931     - margin-top: 0.5em }
1932     -*/
1933     -
1934     -div.dedication {
1935     - margin: 2em 5em ;
1936     - text-align: center ;
1937     - font-style: italic }
1938     -
1939     -div.dedication p.topic-title {
1940     - font-weight: bold ;
1941     - font-style: normal }
1942     -
1943     -div.figure {
1944     - margin-left: 2em ;
1945     - margin-right: 2em }
1946     -
1947     -div.footer, div.header {
1948     - clear: both;
1949     - font-size: smaller }
1950     -
1951     -div.line-block {
1952     - display: block ;
1953     - margin-top: 1em ;
1954     - margin-bottom: 1em }
1955     -
1956     -div.line-block div.line-block {
1957     - margin-top: 0 ;
1958     - margin-bottom: 0 ;
1959     - margin-left: 1.5em }
1960     -
1961     -div.sidebar {
1962     - margin: 0 0 0.5em 1em ;
1963     - border: medium outset ;
1964     - padding: 1em ;
1965     - background-color: #ffffee ;
1966     - width: 40% ;
1967     - float: right ;
1968     - clear: right }
1969     -
1970     -div.sidebar p.rubric {
1971     - font-family: sans-serif ;
1972     - font-size: medium }
1973     -
1974     -div.system-messages {
1975     - margin: 5em }
1976     -
1977     -div.system-messages h1 {
1978     - color: red }
1979     -
1980     -div.system-message {
1981     - border: medium outset ;
1982     - padding: 1em }
1983     -
1984     -div.system-message p.system-message-title {
1985     - color: red ;
1986     - font-weight: bold }
1987     -
1988     -div.topic {
1989     - margin: 2em }
1990     -
1991     -h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
1992     -h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
1993     - margin-top: 0.4em }
1994     -
1995     -h1.title {
1996     - text-align: center }
1997     -
1998     -h2.subtitle {
1999     - text-align: center }
2000     -
2001     -hr.docutils {
2002     - width: 75% }
2003     -
2004     -img.align-left, .figure.align-left, object.align-left, table.align-left {
2005     - clear: left ;
2006     - float: left ;
2007     - margin-right: 1em }
2008     -
2009     -img.align-right, .figure.align-right, object.align-right, table.align-right {
2010     - clear: right ;
2011     - float: right ;
2012     - margin-left: 1em }
2013     -
2014     -img.align-center, .figure.align-center, object.align-center {
2015     - display: block;
2016     - margin-left: auto;
2017     - margin-right: auto;
2018     -}
2019     -
2020     -table.align-center {
2021     - margin-left: auto;
2022     - margin-right: auto;
2023     -}
2024     -
2025     -.align-left {
2026     - text-align: left }
2027     -
2028     -.align-center {
2029     - clear: both ;
2030     - text-align: center }
2031     -
2032     -.align-right {
2033     - text-align: right }
2034     -
2035     -/* reset inner alignment in figures */
2036     -div.align-right {
2037     - text-align: inherit }
2038     -
2039     -/* div.align-center * { */
2040     -/* text-align: left } */
2041     -
2042     -.align-top {
2043     - vertical-align: top }
2044     -
2045     -.align-middle {
2046     - vertical-align: middle }
2047     -
2048     -.align-bottom {
2049     - vertical-align: bottom }
2050     -
2051     -ol.simple, ul.simple {
2052     - margin-bottom: 1em }
2053     -
2054     -ol.arabic {
2055     - list-style: decimal }
2056     -
2057     -ol.loweralpha {
2058     - list-style: lower-alpha }
2059     -
2060     -ol.upperalpha {
2061     - list-style: upper-alpha }
2062     -
2063     -ol.lowerroman {
2064     - list-style: lower-roman }
2065     -
2066     -ol.upperroman {
2067     - list-style: upper-roman }
2068     -
2069     -p.attribution {
2070     - text-align: right ;
2071     - margin-left: 50% }
2072     -
2073     -p.caption {
2074     - font-style: italic }
2075     -
2076     -p.credits {
2077     - font-style: italic ;
2078     - font-size: smaller }
2079     -
2080     -p.label {
2081     - white-space: nowrap }
2082     -
2083     -p.rubric {
2084     - font-weight: bold ;
2085     - font-size: larger ;
2086     - color: maroon ;
2087     - text-align: center }
2088     -
2089     -p.sidebar-title {
2090     - font-family: sans-serif ;
2091     - font-weight: bold ;
2092     - font-size: larger }
2093     -
2094     -p.sidebar-subtitle {
2095     - font-family: sans-serif ;
2096     - font-weight: bold }
2097     -
2098     -p.topic-title {
2099     - font-weight: bold }
2100     -
2101     -pre.address {
2102     - margin-bottom: 0 ;
2103     - margin-top: 0 ;
2104     - font: inherit }
2105     -
2106     -pre.literal-block, pre.doctest-block, pre.math, pre.code {
2107     - margin-left: 2em ;
2108     - margin-right: 2em }
2109     -
2110     -pre.code .ln { color: grey; } /* line numbers */
2111     -pre.code, code { background-color: #eeeeee }
2112     -pre.code .comment, code .comment { color: #5C6576 }
2113     -pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
2114     -pre.code .literal.string, code .literal.string { color: #0C5404 }
2115     -pre.code .name.builtin, code .name.builtin { color: #352B84 }
2116     -pre.code .deleted, code .deleted { background-color: #DEB0A1}
2117     -pre.code .inserted, code .inserted { background-color: #A3D289}
2118     -
2119     -span.classifier {
2120     - font-family: sans-serif ;
2121     - font-style: oblique }
2122     -
2123     -span.classifier-delimiter {
2124     - font-family: sans-serif ;
2125     - font-weight: bold }
2126     -
2127     -span.interpreted {
2128     - font-family: sans-serif }
2129     -
2130     -span.option {
2131     - white-space: nowrap }
2132     -
2133     -span.pre {
2134     - white-space: pre }
2135     -
2136     -span.problematic {
2137     - color: red }
2138     -
2139     -span.section-subtitle {
2140     - /* font-size relative to parent (h1..h6 element) */
2141     - font-size: 80% }
2142     -
2143     -table.citation {
2144     - border-left: solid 1px gray;
2145     - margin-left: 1px }
2146     -
2147     -table.docinfo {
2148     - margin: 2em 4em }
2149     -
2150     -table.docutils {
2151     - margin-top: 0.5em ;
2152     - margin-bottom: 0.5em }
2153     -
2154     -table.footnote {
2155     - border-left: solid 1px black;
2156     - margin-left: 1px }
2157     -
2158     -table.docutils td, table.docutils th,
2159     -table.docinfo td, table.docinfo th {
2160     - padding-left: 0.5em ;
2161     - padding-right: 0.5em ;
2162     - vertical-align: top }
2163     -
2164     -table.docutils th.field-name, table.docinfo th.docinfo-name {
2165     - font-weight: bold ;
2166     - text-align: left ;
2167     - white-space: nowrap ;
2168     - padding-left: 0 }
2169     -
2170     -/* "booktabs" style (no vertical lines) */
2171     -table.docutils.booktabs {
2172     - border: 0px;
2173     - border-top: 2px solid;
2174     - border-bottom: 2px solid;
2175     - border-collapse: collapse;
2176     -}
2177     -table.docutils.booktabs * {
2178     - border: 0px;
2179     -}
2180     -table.docutils.booktabs th {
2181     - border-bottom: thin solid;
2182     - text-align: left;
2183     -}
2184     -
2185     -h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
2186     -h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
2187     - font-size: 100% }
2188     -
2189     -ul.auto-toc {
2190     - list-style-type: none }
2191     -
2192     -</style>
2193     -</head>
2194     -<body>
2195     -<div class="document" id="download-ticket-service">
2196     -<h1 class="title">Download ticket service</h1>
2197     -
2198     -<div class="contents topic" id="inhalt">
2199     -<p class="topic-title first">Inhalt</p>
2200     -<ul class="simple">
2201     -<li><a class="reference internal" href="#kurze-schritt-fur-schritt-anleitung-zum-senden-von-anhangen" id="id1">Kurze Schritt-für-Schritt Anleitung zum Senden von Anhängen</a></li>
2202     -<li><a class="reference internal" href="#kurze-schritt-fur-schritt-anleitung-zum-empfangen-von-anhangen" id="id2">Kurze Schritt-für-Schritt Anleitung zum Empfangen von Anhängen</a></li>
2203     -<li><a class="reference internal" href="#erweiterte-einstellungen" id="id3">Erweiterte Einstellungen</a></li>
2204     -</ul>
2205     -</div>
2206     -<div class="section" id="kurze-schritt-fur-schritt-anleitung-zum-senden-von-anhangen">
2207     -<h1><a class="toc-backref" href="#id1">Kurze Schritt-für-Schritt Anleitung zum Senden von Anhängen</a></h1>
2208     -<p>Rufen Sie die Webseite <a class="reference external" href="https://dl.example.com/">https://dl.example.com/</a> auf und melden Sie sich mit
2209     -Ihrem Benutzernamen und Passwort an. Nach der Anmeldung erscheint die folgende
2210     -Seite:</p>
2211     -<img alt="t-step-1.png" src="t-step-1.png" />
2212     -<ol class="arabic simple">
2213     -<li>Klicken Sie, wie in der Abbildung gezeigt, auf &quot;Durchsuchen&quot; und wählen Sie
2214     -die zu sendende Datei aus.</li>
2215     -<li>Klicken Sie auf &quot;Senden&quot; und warten Sie, bis die Datei hochgeladen wurde,
2216     -siehe folgende Abbildung.</li>
2217     -</ol>
2218     -<img alt="t-step-2.png" src="t-step-2.png" />
2219     -<ol class="arabic simple" start="3">
2220     -<li>Klicken Sie auf &quot;Per E-Mail verschicken&quot;, um den Link zur gerade
2221     -hochgeladenen Datei einem beliebigen Empfänger über Ihr E-Mail Programm zu
2222     -schicken.</li>
2223     -</ol>
2224     -<p>Bei Verwendung der Standardeinstellungen hat der Empfänger eine Woche Zeit, um
2225     -die Datei herunterzuladen, bevor diese automatisch gelöscht wird. Diese Frist
2226     -kann jedoch geändert werden indem Sie die entsprechenden Parameter vor dem
2227     -hochladen anpassen.</p>
2228     -<p>Durch einen Klick auf &quot;Aktive Tickets&quot; am unteren Ende der Seite, kann die
2229     -Liste der hochgeladenen Dateien eingesehen und einzelne Tickets verwaltet
2230     -werden.</p>
2231     -</div>
2232     -<div class="section" id="kurze-schritt-fur-schritt-anleitung-zum-empfangen-von-anhangen">
2233     -<h1><a class="toc-backref" href="#id2">Kurze Schritt-für-Schritt Anleitung zum Empfangen von Anhängen</a></h1>
2234     -<p>Rufen Sie die Webseite <a class="reference external" href="https://dl.example.com/">https://dl.example.com/</a> auf und melden Sie sich mit
2235     -Ihrem Benutzernamen und Passwort an. Nach der Anmeldung erscheint die folgende
2236     -Seite:</p>
2237     -<img alt="g-step-1.png" src="g-step-1.png" />
2238     -<ol class="arabic simple">
2239     -<li>Klicken Sie auf &quot;Neue Upload-Erlaubnis&quot; am unteren Ende der Seite</li>
2240     -</ol>
2241     -<img alt="g-step-2.png" src="g-step-2.png" />
2242     -<ol class="arabic simple" start="2">
2243     -<li>Geben Sie Ihre E-Mailadresse an.</li>
2244     -<li>Klicken Sie auf &quot;Erstellen&quot; um die Erlaubnis zu erstellen.</li>
2245     -</ol>
2246     -<img alt="g-step-3.png" src="g-step-3.png" />
2247     -<ol class="arabic simple" start="4">
2248     -<li>Klicken Sie auf &quot;Per E-Mail verschicken&quot;, um die Upload-Erlaubnis an einen
2249     -beliebigen Empfänger zu schicken.</li>
2250     -</ol>
2251     -<p>Der Empfänger braucht nach Erhalt der Upload-Erlaubnis den darin enthaltenen
2252     -Link lediglich in einem Browser aufzurufen und die Anweisungen am Bildschirm zu
2253     -befolgen. Sobald der Empfänger die Datei hochgeladen hat, wird Ihnen eine
2254     -Bestätigungs-E-Mail mit einem Link zur hochgeladenen Datei zugeschickt.</p>
2255     -</div>
2256     -<div class="section" id="erweiterte-einstellungen">
2257     -<h1><a class="toc-backref" href="#id3">Erweiterte Einstellungen</a></h1>
2258     -<p>Vor dem Versand einer Datei ist es möglich die Verfallsfristen unter dem Abschnitt &quot;Weitere Optionen&quot; anzupassen.</p>
2259     -<img alt="t-advanced.png" src="t-advanced.png" />
2260     -<p>Wenn Sie möchten, dass die Datei nicht automatisch gelöscht wird, aktivieren
2261     -Sie die Option &quot;Ticket ohne Verfallsfrist &quot;, die Sie unter &quot;Weitere Optionen&quot;
2262     -finden. Die Datei wird dann solange zur Verfügung stehen, bis sie manuell
2263     -gelöscht wird.</p>
2264     -<p>Wenn Sie für jeden einzelnen Download einer Datei eine Meldung erhalten
2265     -möchten, geben Sie Ihre E-Mail-Adresse im Feld &quot;Bei Download folgende
2266     -E-Mailadresse benachrichtigen&quot; ein. Sie finden das Feld unter &quot;Weitere
2267     -Optionen&quot;.</p>
2268     -<p>Frist in # Tagen:</p>
2269     -<blockquote>
2270     -Hier können Sie die maximale Anzahl von Tagen angeben, welche die gesendete
2271     -Datei auf dem Server erhalten bleibt. Nach Ablauf dieser Frist wird die Datei
2272     -automatisch gelöscht, unabhängig davon ob sie heruntergeladen wurde oder
2273     -nicht.</blockquote>
2274     -<p>Frist in # Stunden, nach dem letzten Download:</p>
2275     -<blockquote>
2276     -<p>Hier können Sie die maximale Anzahl von Stunden angeben, für welche die Datei
2277     -nach dem letzten Download noch auf dem Server verbleiben soll. Jeder weiterer
2278     -Download legt die Verfallsfrist um die angegebene Stundenanzahl erneut fest.
2279     -Ist die Frist abgelaufen, wird die Datei automatisch gelöscht.</p>
2280     -<p>Diese Frist-Angabe ermöglicht Ihnen bei Verwendung von großen Zeiträumen
2281     -(Tage/Wochen) häufig verwendete Tickets für einen unbestimmten Zeitraum aktiv
2282     -zu erhalten und sie automatisch zu löschen, sobald sie nicht mehr verwendet
2283     -werden.</p>
2284     -<p>Wird die Frist-Angabe hingegen mit kurzen Zeiträumen verwendet (bis zu 24
2285     -Stunden), wird das Ticket nach dem Herunterladen schnell entfernt, gibt dem
2286     -Empfänger aber noch einen kleinen Spielraum für weitere Downloads.</p>
2287     -</blockquote>
2288     -<p>Frist in # Downloads:</p>
2289     -<blockquote>
2290     -Hier können Sie festlegen, wie oft eine Datei insgesamt vom Server
2291     -heruntergeladen werden kann. Bei Erreichen dieser Anzahl wird die Datei
2292     -automatisch gelöscht.</blockquote>
2293     -<p>Wird mindestens eine der oben beschriebenen Fristen überschritten, verfällt das
2294     -Ticket und wird somit automatisch gelöscht. Sie können eine oder mehrere
2295     -Fristen deaktivieren, indem Sie den entsprechenden Parameter auf &quot;0&quot; setzen.</p>
2296     -</div>
2297     -</div>
2298     -</body>
2299     -</html>
2300     diff -Nur dl-0.18.1/htdocs/static/guide/en_EN/index.html dl-master/htdocs/static/guide/en_EN/index.html
2301     --- dl-0.18.1/htdocs/static/guide/en_EN/index.html 2017-09-06 12:09:37.000000000 -0400
2302     +++ dl-master/htdocs/static/guide/en_EN/index.html 1969-12-31 19:00:00.000000000 -0500
2303     @@ -1,464 +0,0 @@
2304     -<?xml version="1.0" encoding="utf-8" ?>
2305     -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2306     -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en_EN" lang="en_EN">
2307     -<head>
2308     -<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
2309     -<meta name="generator" content="Docutils 0.13.1: http://docutils.sourceforge.net/" />
2310     -<title>Download ticket service</title>
2311     -<style type="text/css">
2312     -
2313     -/*
2314     -:Author: David Goodger (goodger@python.org)
2315     -:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
2316     -:Copyright: This stylesheet has been placed in the public domain.
2317     -
2318     -Default cascading style sheet for the HTML output of Docutils.
2319     -
2320     -See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
2321     -customize this style sheet.
2322     -*/
2323     -
2324     -/* used to remove borders from tables and images */
2325     -.borderless, table.borderless td, table.borderless th {
2326     - border: 0 }
2327     -
2328     -table.borderless td, table.borderless th {
2329     - /* Override padding for "table.docutils td" with "! important".
2330     - The right padding separates the table cells. */
2331     - padding: 0 0.5em 0 0 ! important }
2332     -
2333     -.first {
2334     - /* Override more specific margin styles with "! important". */
2335     - margin-top: 0 ! important }
2336     -
2337     -.last, .with-subtitle {
2338     - margin-bottom: 0 ! important }
2339     -
2340     -.hidden {
2341     - display: none }
2342     -
2343     -.subscript {
2344     - vertical-align: sub;
2345     - font-size: smaller }
2346     -
2347     -.superscript {
2348     - vertical-align: super;
2349     - font-size: smaller }
2350     -
2351     -a.toc-backref {
2352     - text-decoration: none ;
2353     - color: black }
2354     -
2355     -blockquote.epigraph {
2356     - margin: 2em 5em ; }
2357     -
2358     -dl.docutils dd {
2359     - margin-bottom: 0.5em }
2360     -
2361     -object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
2362     - overflow: hidden;
2363     -}
2364     -
2365     -/* Uncomment (and remove this text!) to get bold-faced definition list terms
2366     -dl.docutils dt {
2367     - font-weight: bold }
2368     -*/
2369     -
2370     -div.abstract {
2371     - margin: 2em 5em }
2372     -
2373     -div.abstract p.topic-title {
2374     - font-weight: bold ;
2375     - text-align: center }
2376     -
2377     -div.admonition, div.attention, div.caution, div.danger, div.error,
2378     -div.hint, div.important, div.note, div.tip, div.warning {
2379     - margin: 2em ;
2380     - border: medium outset ;
2381     - padding: 1em }
2382     -
2383     -div.admonition p.admonition-title, div.hint p.admonition-title,
2384     -div.important p.admonition-title, div.note p.admonition-title,
2385     -div.tip p.admonition-title {
2386     - font-weight: bold ;
2387     - font-family: sans-serif }
2388     -
2389     -div.attention p.admonition-title, div.caution p.admonition-title,
2390     -div.danger p.admonition-title, div.error p.admonition-title,
2391     -div.warning p.admonition-title, .code .error {
2392     - color: red ;
2393     - font-weight: bold ;
2394     - font-family: sans-serif }
2395     -
2396     -/* Uncomment (and remove this text!) to get reduced vertical space in
2397     - compound paragraphs.
2398     -div.compound .compound-first, div.compound .compound-middle {
2399     - margin-bottom: 0.5em }
2400     -
2401     -div.compound .compound-last, div.compound .compound-middle {
2402     - margin-top: 0.5em }
2403     -*/
2404     -
2405     -div.dedication {
2406     - margin: 2em 5em ;
2407     - text-align: center ;
2408     - font-style: italic }
2409     -
2410     -div.dedication p.topic-title {
2411     - font-weight: bold ;
2412     - font-style: normal }
2413     -
2414     -div.figure {
2415     - margin-left: 2em ;
2416     - margin-right: 2em }
2417     -
2418     -div.footer, div.header {
2419     - clear: both;
2420     - font-size: smaller }
2421     -
2422     -div.line-block {
2423     - display: block ;
2424     - margin-top: 1em ;
2425     - margin-bottom: 1em }
2426     -
2427     -div.line-block div.line-block {
2428     - margin-top: 0 ;
2429     - margin-bottom: 0 ;
2430     - margin-left: 1.5em }
2431     -
2432     -div.sidebar {
2433     - margin: 0 0 0.5em 1em ;
2434     - border: medium outset ;
2435     - padding: 1em ;
2436     - background-color: #ffffee ;
2437     - width: 40% ;
2438     - float: right ;
2439     - clear: right }
2440     -
2441     -div.sidebar p.rubric {
2442     - font-family: sans-serif ;
2443     - font-size: medium }
2444     -
2445     -div.system-messages {
2446     - margin: 5em }
2447     -
2448     -div.system-messages h1 {
2449     - color: red }
2450     -
2451     -div.system-message {
2452     - border: medium outset ;
2453     - padding: 1em }
2454     -
2455     -div.system-message p.system-message-title {
2456     - color: red ;
2457     - font-weight: bold }
2458     -
2459     -div.topic {
2460     - margin: 2em }
2461     -
2462     -h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
2463     -h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
2464     - margin-top: 0.4em }
2465     -
2466     -h1.title {
2467     - text-align: center }
2468     -
2469     -h2.subtitle {
2470     - text-align: center }
2471     -
2472     -hr.docutils {
2473     - width: 75% }
2474     -
2475     -img.align-left, .figure.align-left, object.align-left, table.align-left {
2476     - clear: left ;
2477     - float: left ;
2478     - margin-right: 1em }
2479     -
2480     -img.align-right, .figure.align-right, object.align-right, table.align-right {
2481     - clear: right ;
2482     - float: right ;
2483     - margin-left: 1em }
2484     -
2485     -img.align-center, .figure.align-center, object.align-center {
2486     - display: block;
2487     - margin-left: auto;
2488     - margin-right: auto;
2489     -}
2490     -
2491     -table.align-center {
2492     - margin-left: auto;
2493     - margin-right: auto;
2494     -}
2495     -
2496     -.align-left {
2497     - text-align: left }
2498     -
2499     -.align-center {
2500     - clear: both ;
2501     - text-align: center }
2502     -
2503     -.align-right {
2504     - text-align: right }
2505     -
2506     -/* reset inner alignment in figures */
2507     -div.align-right {
2508     - text-align: inherit }
2509     -
2510     -/* div.align-center * { */
2511     -/* text-align: left } */
2512     -
2513     -.align-top {
2514     - vertical-align: top }
2515     -
2516     -.align-middle {
2517     - vertical-align: middle }
2518     -
2519     -.align-bottom {
2520     - vertical-align: bottom }
2521     -
2522     -ol.simple, ul.simple {
2523     - margin-bottom: 1em }
2524     -
2525     -ol.arabic {
2526     - list-style: decimal }
2527     -
2528     -ol.loweralpha {
2529     - list-style: lower-alpha }
2530     -
2531     -ol.upperalpha {
2532     - list-style: upper-alpha }
2533     -
2534     -ol.lowerroman {
2535     - list-style: lower-roman }
2536     -
2537     -ol.upperroman {
2538     - list-style: upper-roman }
2539     -
2540     -p.attribution {
2541     - text-align: right ;
2542     - margin-left: 50% }
2543     -
2544     -p.caption {
2545     - font-style: italic }
2546     -
2547     -p.credits {
2548     - font-style: italic ;
2549     - font-size: smaller }
2550     -
2551     -p.label {
2552     - white-space: nowrap }
2553     -
2554     -p.rubric {
2555     - font-weight: bold ;
2556     - font-size: larger ;
2557     - color: maroon ;
2558     - text-align: center }
2559     -
2560     -p.sidebar-title {
2561     - font-family: sans-serif ;
2562     - font-weight: bold ;
2563     - font-size: larger }
2564     -
2565     -p.sidebar-subtitle {
2566     - font-family: sans-serif ;
2567     - font-weight: bold }
2568     -
2569     -p.topic-title {
2570     - font-weight: bold }
2571     -
2572     -pre.address {
2573     - margin-bottom: 0 ;
2574     - margin-top: 0 ;
2575     - font: inherit }
2576     -
2577     -pre.literal-block, pre.doctest-block, pre.math, pre.code {
2578     - margin-left: 2em ;
2579     - margin-right: 2em }
2580     -
2581     -pre.code .ln { color: grey; } /* line numbers */
2582     -pre.code, code { background-color: #eeeeee }
2583     -pre.code .comment, code .comment { color: #5C6576 }
2584     -pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
2585     -pre.code .literal.string, code .literal.string { color: #0C5404 }
2586     -pre.code .name.builtin, code .name.builtin { color: #352B84 }
2587     -pre.code .deleted, code .deleted { background-color: #DEB0A1}
2588     -pre.code .inserted, code .inserted { background-color: #A3D289}
2589     -
2590     -span.classifier {
2591     - font-family: sans-serif ;
2592     - font-style: oblique }
2593     -
2594     -span.classifier-delimiter {
2595     - font-family: sans-serif ;
2596     - font-weight: bold }
2597     -
2598     -span.interpreted {
2599     - font-family: sans-serif }
2600     -
2601     -span.option {
2602     - white-space: nowrap }
2603     -
2604     -span.pre {
2605     - white-space: pre }
2606     -
2607     -span.problematic {
2608     - color: red }
2609     -
2610     -span.section-subtitle {
2611     - /* font-size relative to parent (h1..h6 element) */
2612     - font-size: 80% }
2613     -
2614     -table.citation {
2615     - border-left: solid 1px gray;
2616     - margin-left: 1px }
2617     -
2618     -table.docinfo {
2619     - margin: 2em 4em }
2620     -
2621     -table.docutils {
2622     - margin-top: 0.5em ;
2623     - margin-bottom: 0.5em }
2624     -
2625     -table.footnote {
2626     - border-left: solid 1px black;
2627     - margin-left: 1px }
2628     -
2629     -table.docutils td, table.docutils th,
2630     -table.docinfo td, table.docinfo th {
2631     - padding-left: 0.5em ;
2632     - padding-right: 0.5em ;
2633     - vertical-align: top }
2634     -
2635     -table.docutils th.field-name, table.docinfo th.docinfo-name {
2636     - font-weight: bold ;
2637     - text-align: left ;
2638     - white-space: nowrap ;
2639     - padding-left: 0 }
2640     -
2641     -/* "booktabs" style (no vertical lines) */
2642     -table.docutils.booktabs {
2643     - border: 0px;
2644     - border-top: 2px solid;
2645     - border-bottom: 2px solid;
2646     - border-collapse: collapse;
2647     -}
2648     -table.docutils.booktabs * {
2649     - border: 0px;
2650     -}
2651     -table.docutils.booktabs th {
2652     - border-bottom: thin solid;
2653     - text-align: left;
2654     -}
2655     -
2656     -h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
2657     -h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
2658     - font-size: 100% }
2659     -
2660     -ul.auto-toc {
2661     - list-style-type: none }
2662     -
2663     -</style>
2664     -</head>
2665     -<body>
2666     -<div class="document" id="download-ticket-service">
2667     -<h1 class="title">Download ticket service</h1>
2668     -
2669     -<div class="contents topic" id="contents">
2670     -<p class="topic-title first">Contents</p>
2671     -<ul class="simple">
2672     -<li><a class="reference internal" href="#short-step-by-step-guide-to-send-attachments" id="id1">Short Step-by-step guide to send attachments</a></li>
2673     -<li><a class="reference internal" href="#short-step-by-step-guide-to-receive-attachments" id="id2">Short Step-by-step guide to receive attachments</a></li>
2674     -<li><a class="reference internal" href="#advanced-upload-parameters" id="id3">Advanced upload parameters</a></li>
2675     -</ul>
2676     -</div>
2677     -<div class="section" id="short-step-by-step-guide-to-send-attachments">
2678     -<h1><a class="toc-backref" href="#id1">Short Step-by-step guide to send attachments</a></h1>
2679     -<p>First, go to <a class="reference external" href="https://dl.example.com/">https://dl.example.com/</a> and authenticate with your username and
2680     -password.</p>
2681     -<p>You should be presented with this page:</p>
2682     -<img alt="t-step-1.png" src="t-step-1.png" />
2683     -<ol class="arabic simple">
2684     -<li>Click on the button under &quot;Upload File&quot; (labelled either &quot;Browse&quot; or &quot;Choose
2685     -File&quot;) as outlined in the picture and pick the file you need to send.</li>
2686     -<li>Click &quot;Upload&quot;, and wait until the file is uploaded as shown:</li>
2687     -</ol>
2688     -<img alt="t-step-2.png" src="t-step-2.png" />
2689     -<ol class="arabic simple" start="3">
2690     -<li>Click &quot;Send via E-Mail&quot; to send an e-mail to someone, containing the link
2691     -to the file you just uploaded.</li>
2692     -</ol>
2693     -<p>By default, the recipient has one week to download the file before it is
2694     -automatically cleaned up. You can change this behavior by setting some
2695     -parameters before uploading.</p>
2696     -<p>You can see a list of files you have uploaded and manage them by clicking on
2697     -the &quot;List active tickets&quot; button, at the bottom of the page.</p>
2698     -</div>
2699     -<div class="section" id="short-step-by-step-guide-to-receive-attachments">
2700     -<h1><a class="toc-backref" href="#id2">Short Step-by-step guide to receive attachments</a></h1>
2701     -<p>First, go to <a class="reference external" href="https://dl.example.com/">https://dl.example.com/</a> and authenticate with your username and
2702     -password.</p>
2703     -<p>You should be presented with this page:</p>
2704     -<img alt="g-step-1.png" src="g-step-1.png" />
2705     -<ol class="arabic simple">
2706     -<li>Click on the &quot;New grant&quot; link at the bottom of the page to start a new
2707     -grant:</li>
2708     -</ol>
2709     -<img alt="g-step-2.png" src="g-step-2.png" />
2710     -<ol class="arabic simple" start="2">
2711     -<li>Enter <em>your</em> email address.</li>
2712     -<li>Click &quot;Create&quot; to generate an upload grant:</li>
2713     -</ol>
2714     -<img alt="g-step-3.png" src="g-step-3.png" />
2715     -<ol class="arabic simple" start="4">
2716     -<li>Click &quot;Send via E-Mail&quot; to send an e-mail to someone, containing the link
2717     -that will allow him to send you any file.</li>
2718     -</ol>
2719     -<p>Your recipient simply needs to follow the instructions contained in the link
2720     -itself. Once he uploads the file into the server, you will receive an email
2721     -containing another link to the file just uploaded.</p>
2722     -</div>
2723     -<div class="section" id="advanced-upload-parameters">
2724     -<h1><a class="toc-backref" href="#id3">Advanced upload parameters</a></h1>
2725     -<p>Before uploading a file, you can customize how the download and cleanup is
2726     -performed by setting some &quot;Advanced&quot; parameters:</p>
2727     -<img alt="t-advanced.png" src="t-advanced.png" />
2728     -<ul class="simple">
2729     -<li><em>If you want your file to never be deleted</em> please check the &quot;Permanent
2730     -ticket&quot; checkbox. Your file will always be available until you manually
2731     -remove it.</li>
2732     -<li><em>If you want to be notified every time someone downloads the file</em> you can
2733     -write your e-mail in the &quot;Get notified by email&quot; box. You'll receive
2734     -notifications every time the file is successfully downloaded or removed from
2735     -the server. This is great if you want extra confirmation that your email has
2736     -been acted upon.</li>
2737     -</ul>
2738     -<p>Expire in total # of hours:</p>
2739     -<blockquote>
2740     -Type the maximal number of hours the uploaded file is allowed to be kept on
2741     -the server. After this period is passed the file will be deleted from the
2742     -server whether is was downloaded or not.</blockquote>
2743     -<p>Expire in # of hours after last dl:</p>
2744     -<blockquote>
2745     -<p>Type the number of hours the uploaded file is allowed to be kept on the
2746     -server after being downloaded. Another download will extend the lifetime of
2747     -the ticket for the specified number of hours. After this period is passed
2748     -without activity, the file is be deleted from the server.</p>
2749     -<p>This feature, when used with a long period (days or weeks), allows &quot;hot&quot;
2750     -tickets to be kept alive only until used, and be deleted automatically
2751     -afterward.</p>
2752     -<p>When used with a short period (24 hours or less), allows to remove the ticket
2753     -as soon as being downloaded, allowing the recipient some margin to download
2754     -the file more than once.</p>
2755     -</blockquote>
2756     -<p>Expire after # of downloads:</p>
2757     -<blockquote>
2758     -Type the number of times the uploaded file is allowed to be downloaded in
2759     -total. After this amount is reached the file will be deleted from the
2760     -server. Handy if you need to ensure the file is downloaded just once from a
2761     -single person.</blockquote>
2762     -<p>If at least one of these parameters expires the file will be deleted. You can
2763     -set any parameter to &quot;0&quot; to disable the condition.</p>
2764     -</div>
2765     -</div>
2766     -</body>
2767     -</html>
2768     diff -Nur dl-0.18.1/htdocs/static/guide/es_ES/index.html dl-master/htdocs/static/guide/es_ES/index.html
2769     --- dl-0.18.1/htdocs/static/guide/es_ES/index.html 2017-09-06 12:09:37.000000000 -0400
2770     +++ dl-master/htdocs/static/guide/es_ES/index.html 1969-12-31 19:00:00.000000000 -0500
2771     @@ -1,465 +0,0 @@
2772     -<?xml version="1.0" encoding="utf-8" ?>
2773     -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2774     -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es_ES" lang="es_ES">
2775     -<head>
2776     -<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
2777     -<meta name="generator" content="Docutils 0.13.1: http://docutils.sourceforge.net/" />
2778     -<title>Download ticket service</title>
2779     -<style type="text/css">
2780     -
2781     -/*
2782     -:Author: David Goodger (goodger@python.org)
2783     -:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
2784     -:Copyright: This stylesheet has been placed in the public domain.
2785     -
2786     -Default cascading style sheet for the HTML output of Docutils.
2787     -
2788     -See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
2789     -customize this style sheet.
2790     -*/
2791     -
2792     -/* used to remove borders from tables and images */
2793     -.borderless, table.borderless td, table.borderless th {
2794     - border: 0 }
2795     -
2796     -table.borderless td, table.borderless th {
2797     - /* Override padding for "table.docutils td" with "! important".
2798     - The right padding separates the table cells. */
2799     - padding: 0 0.5em 0 0 ! important }
2800     -
2801     -.first {
2802     - /* Override more specific margin styles with "! important". */
2803     - margin-top: 0 ! important }
2804     -
2805     -.last, .with-subtitle {
2806     - margin-bottom: 0 ! important }
2807     -
2808     -.hidden {
2809     - display: none }
2810     -
2811     -.subscript {
2812     - vertical-align: sub;
2813     - font-size: smaller }
2814     -
2815     -.superscript {
2816     - vertical-align: super;
2817     - font-size: smaller }
2818     -
2819     -a.toc-backref {
2820     - text-decoration: none ;
2821     - color: black }
2822     -
2823     -blockquote.epigraph {
2824     - margin: 2em 5em ; }
2825     -
2826     -dl.docutils dd {
2827     - margin-bottom: 0.5em }
2828     -
2829     -object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
2830     - overflow: hidden;
2831     -}
2832     -
2833     -/* Uncomment (and remove this text!) to get bold-faced definition list terms
2834     -dl.docutils dt {
2835     - font-weight: bold }
2836     -*/
2837     -
2838     -div.abstract {
2839     - margin: 2em 5em }
2840     -
2841     -div.abstract p.topic-title {
2842     - font-weight: bold ;
2843     - text-align: center }
2844     -
2845     -div.admonition, div.attention, div.caution, div.danger, div.error,
2846     -div.hint, div.important, div.note, div.tip, div.warning {
2847     - margin: 2em ;
2848     - border: medium outset ;
2849     - padding: 1em }
2850     -
2851     -div.admonition p.admonition-title, div.hint p.admonition-title,
2852     -div.important p.admonition-title, div.note p.admonition-title,
2853     -div.tip p.admonition-title {
2854     - font-weight: bold ;
2855     - font-family: sans-serif }
2856     -
2857     -div.attention p.admonition-title, div.caution p.admonition-title,
2858     -div.danger p.admonition-title, div.error p.admonition-title,
2859     -div.warning p.admonition-title, .code .error {
2860     - color: red ;
2861     - font-weight: bold ;
2862     - font-family: sans-serif }
2863     -
2864     -/* Uncomment (and remove this text!) to get reduced vertical space in
2865     - compound paragraphs.
2866     -div.compound .compound-first, div.compound .compound-middle {
2867     - margin-bottom: 0.5em }
2868     -
2869     -div.compound .compound-last, div.compound .compound-middle {
2870     - margin-top: 0.5em }
2871     -*/
2872     -
2873     -div.dedication {
2874     - margin: 2em 5em ;
2875     - text-align: center ;
2876     - font-style: italic }
2877     -
2878     -div.dedication p.topic-title {
2879     - font-weight: bold ;
2880     - font-style: normal }
2881     -
2882     -div.figure {
2883     - margin-left: 2em ;
2884     - margin-right: 2em }
2885     -
2886     -div.footer, div.header {
2887     - clear: both;
2888     - font-size: smaller }
2889     -
2890     -div.line-block {
2891     - display: block ;
2892     - margin-top: 1em ;
2893     - margin-bottom: 1em }
2894     -
2895     -div.line-block div.line-block {
2896     - margin-top: 0 ;
2897     - margin-bottom: 0 ;
2898     - margin-left: 1.5em }
2899     -
2900     -div.sidebar {
2901     - margin: 0 0 0.5em 1em ;
2902     - border: medium outset ;
2903     - padding: 1em ;
2904     - background-color: #ffffee ;
2905     - width: 40% ;
2906     - float: right ;
2907     - clear: right }
2908     -
2909     -div.sidebar p.rubric {
2910     - font-family: sans-serif ;
2911     - font-size: medium }
2912     -
2913     -div.system-messages {
2914     - margin: 5em }
2915     -
2916     -div.system-messages h1 {
2917     - color: red }
2918     -
2919     -div.system-message {
2920     - border: medium outset ;
2921     - padding: 1em }
2922     -
2923     -div.system-message p.system-message-title {
2924     - color: red ;
2925     - font-weight: bold }
2926     -
2927     -div.topic {
2928     - margin: 2em }
2929     -
2930     -h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
2931     -h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
2932     - margin-top: 0.4em }
2933     -
2934     -h1.title {
2935     - text-align: center }
2936     -
2937     -h2.subtitle {
2938     - text-align: center }
2939     -
2940     -hr.docutils {
2941     - width: 75% }
2942     -
2943     -img.align-left, .figure.align-left, object.align-left, table.align-left {
2944     - clear: left ;
2945     - float: left ;
2946     - margin-right: 1em }
2947     -
2948     -img.align-right, .figure.align-right, object.align-right, table.align-right {
2949     - clear: right ;
2950     - float: right ;
2951     - margin-left: 1em }
2952     -
2953     -img.align-center, .figure.align-center, object.align-center {
2954     - display: block;
2955     - margin-left: auto;
2956     - margin-right: auto;
2957     -}
2958     -
2959     -table.align-center {
2960     - margin-left: auto;
2961     - margin-right: auto;
2962     -}
2963     -
2964     -.align-left {
2965     - text-align: left }
2966     -
2967     -.align-center {
2968     - clear: both ;
2969     - text-align: center }
2970     -
2971     -.align-right {
2972     - text-align: right }
2973     -
2974     -/* reset inner alignment in figures */
2975     -div.align-right {
2976     - text-align: inherit }
2977     -
2978     -/* div.align-center * { */
2979     -/* text-align: left } */
2980     -
2981     -.align-top {
2982     - vertical-align: top }
2983     -
2984     -.align-middle {
2985     - vertical-align: middle }
2986     -
2987     -.align-bottom {
2988     - vertical-align: bottom }
2989     -
2990     -ol.simple, ul.simple {
2991     - margin-bottom: 1em }
2992     -
2993     -ol.arabic {
2994     - list-style: decimal }
2995     -
2996     -ol.loweralpha {
2997     - list-style: lower-alpha }
2998     -
2999     -ol.upperalpha {
3000     - list-style: upper-alpha }
3001     -
3002     -ol.lowerroman {
3003     - list-style: lower-roman }
3004     -
3005     -ol.upperroman {
3006     - list-style: upper-roman }
3007     -
3008     -p.attribution {
3009     - text-align: right ;
3010     - margin-left: 50% }
3011     -
3012     -p.caption {
3013     - font-style: italic }
3014     -
3015     -p.credits {
3016     - font-style: italic ;
3017     - font-size: smaller }
3018     -
3019     -p.label {
3020     - white-space: nowrap }
3021     -
3022     -p.rubric {
3023     - font-weight: bold ;
3024     - font-size: larger ;
3025     - color: maroon ;
3026     - text-align: center }
3027     -
3028     -p.sidebar-title {
3029     - font-family: sans-serif ;
3030     - font-weight: bold ;
3031     - font-size: larger }
3032     -
3033     -p.sidebar-subtitle {
3034     - font-family: sans-serif ;
3035     - font-weight: bold }
3036     -
3037     -p.topic-title {
3038     - font-weight: bold }
3039     -
3040     -pre.address {
3041     - margin-bottom: 0 ;
3042     - margin-top: 0 ;
3043     - font: inherit }
3044     -
3045     -pre.literal-block, pre.doctest-block, pre.math, pre.code {
3046     - margin-left: 2em ;
3047     - margin-right: 2em }
3048     -
3049     -pre.code .ln { color: grey; } /* line numbers */
3050     -pre.code, code { background-color: #eeeeee }
3051     -pre.code .comment, code .comment { color: #5C6576 }
3052     -pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
3053     -pre.code .literal.string, code .literal.string { color: #0C5404 }
3054     -pre.code .name.builtin, code .name.builtin { color: #352B84 }
3055     -pre.code .deleted, code .deleted { background-color: #DEB0A1}
3056     -pre.code .inserted, code .inserted { background-color: #A3D289}
3057     -
3058     -span.classifier {
3059     - font-family: sans-serif ;
3060     - font-style: oblique }
3061     -
3062     -span.classifier-delimiter {
3063     - font-family: sans-serif ;
3064     - font-weight: bold }
3065     -
3066     -span.interpreted {
3067     - font-family: sans-serif }
3068     -
3069     -span.option {
3070     - white-space: nowrap }
3071     -
3072     -span.pre {
3073     - white-space: pre }
3074     -
3075     -span.problematic {
3076     - color: red }
3077     -
3078     -span.section-subtitle {
3079     - /* font-size relative to parent (h1..h6 element) */
3080     - font-size: 80% }
3081     -
3082     -table.citation {
3083     - border-left: solid 1px gray;
3084     - margin-left: 1px }
3085     -
3086     -table.docinfo {
3087     - margin: 2em 4em }
3088     -
3089     -table.docutils {
3090     - margin-top: 0.5em ;
3091     - margin-bottom: 0.5em }
3092     -
3093     -table.footnote {
3094     - border-left: solid 1px black;
3095     - margin-left: 1px }
3096     -
3097     -table.docutils td, table.docutils th,
3098     -table.docinfo td, table.docinfo th {
3099     - padding-left: 0.5em ;
3100     - padding-right: 0.5em ;
3101     - vertical-align: top }
3102     -
3103     -table.docutils th.field-name, table.docinfo th.docinfo-name {
3104     - font-weight: bold ;
3105     - text-align: left ;
3106     - white-space: nowrap ;
3107     - padding-left: 0 }
3108     -
3109     -/* "booktabs" style (no vertical lines) */
3110     -table.docutils.booktabs {
3111     - border: 0px;
3112     - border-top: 2px solid;
3113     - border-bottom: 2px solid;
3114     - border-collapse: collapse;
3115     -}
3116     -table.docutils.booktabs * {
3117     - border: 0px;
3118     -}
3119     -table.docutils.booktabs th {
3120     - border-bottom: thin solid;
3121     - text-align: left;
3122     -}
3123     -
3124     -h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
3125     -h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
3126     - font-size: 100% }
3127     -
3128     -ul.auto-toc {
3129     - list-style-type: none }
3130     -
3131     -</style>
3132     -</head>
3133     -<body>
3134     -<div class="document" id="download-ticket-service">
3135     -<h1 class="title">Download ticket service</h1>
3136     -
3137     -<div class="contents topic" id="contenido">
3138     -<p class="topic-title first">Contenido</p>
3139     -<ul class="simple">
3140     -<li><a class="reference internal" href="#breve-guia-paso-a-paso-para-subir-ficheros" id="id1">Breve guía paso a paso para subir ficheros</a></li>
3141     -<li><a class="reference internal" href="#breve-guia-paso-a-paso-para-recibir-ficheros" id="id2">Breve guía paso a paso para recibir ficheros</a></li>
3142     -<li><a class="reference internal" href="#parametros-avanzados-de-subida" id="id3">Parámetros Avanzados de subida</a></li>
3143     -</ul>
3144     -</div>
3145     -<div class="section" id="breve-guia-paso-a-paso-para-subir-ficheros">
3146     -<h1><a class="toc-backref" href="#id1">Breve guía paso a paso para subir ficheros</a></h1>
3147     -<p>Primero, diríjase a <a class="reference external" href="https://dl.example.com/">https://dl.example.com/</a> y autentíquese usando su usuario y
3148     -contraseña.</p>
3149     -<p>Esta página debería ser mostrada:</p>
3150     -<img alt="t-step-1.png" src="t-step-1.png" />
3151     -<ol class="arabic simple">
3152     -<li>Cliquee en el botón bajo &quot;Subir fichero&quot; (llamado &quot;Examinar&quot; or &quot;Escoja
3153     -fichero&quot;) como se ve en la imagen y seleccione el fichero que necesita subir.</li>
3154     -<li>Click en &quot;Subir&quot; y espere mientras el fichero es subido como aquí se muestra:</li>
3155     -</ol>
3156     -<img alt="t-step-2.png" src="t-step-2.png" />
3157     -<ol class="arabic simple" start="3">
3158     -<li>Click en &quot;Enviar vía e-mail&quot; para enviar un e-mail a alguien con el enlace
3159     -al fichero que acaba de subir.</li>
3160     -</ol>
3161     -<p>Por defecto, el receptor tiene una semana para descargar el fichero antes de
3162     -este sea eliminado automáticamente. Puede cambiar este comportamiento
3163     -configurando algunos parámetros antes de la subida.</p>
3164     -<p>Puede ver una lista de ficheros que ha subido y administrarlos cliqueando en el
3165     -botón &quot;Listar tickets activos&quot; a pie de página.</p>
3166     -</div>
3167     -<div class="section" id="breve-guia-paso-a-paso-para-recibir-ficheros">
3168     -<h1><a class="toc-backref" href="#id2">Breve guía paso a paso para recibir ficheros</a></h1>
3169     -<p>Primero, diríjase a <a class="reference external" href="https://dl.example.com/">https://dl.example.com/</a> y autentíquese usando su usuario y
3170     -contraseña.</p>
3171     -<p>Esta página debería ser mostrada:</p>
3172     -<img alt="g-step-1.png" src="g-step-1.png" />
3173     -<ol class="arabic simple">
3174     -<li>Click en el enlace &quot;Nueva concesión&quot; al pie de página para empezar una nueva
3175     -concesión:</li>
3176     -</ol>
3177     -<img alt="g-step-2.png" src="g-step-2.png" />
3178     -<ol class="arabic simple" start="2">
3179     -<li>Introduzca <em>su</em> dirección de e-mail.</li>
3180     -<li>Click en &quot;Crear&quot; para generar una concesión de subida:</li>
3181     -</ol>
3182     -<img alt="g-step-3.png" src="g-step-3.png" />
3183     -<ol class="arabic simple" start="4">
3184     -<li>Click en &quot;Enviar vía E-Mail&quot; para enviar un e-mail a alguien con el enlace
3185     -a quién le permitirá subir un fichero para usted.</li>
3186     -</ol>
3187     -<p>El receptor simplemente necesitará seguir las instrucciones contenidas en el
3188     -propio enlace. Una vez este suba un fichero al servidor, usted recibirá un
3189     -e-mail que contendrá un enlace a el fichero que ha sido subido.</p>
3190     -</div>
3191     -<div class="section" id="parametros-avanzados-de-subida">
3192     -<h1><a class="toc-backref" href="#id3">Parámetros Avanzados de subida</a></h1>
3193     -<p>Antes de subir un fichero, puede personalizar cómo se realizará su descarga y
3194     -su limpieza configurando algunos parámetros &quot;avanzados&quot;:</p>
3195     -<img alt="t-advanced.png" src="t-advanced.png" />
3196     -<ul class="simple">
3197     -<li><em>Si quiere que su fichero nunca sea eliminado</em>, por favor, marque la casilla
3198     -&quot;Ticket permanente&quot;. Su fichero estará disponible hasta que usted lo elimine
3199     -manualmente.</li>
3200     -<li><em>Si quiere ser notificado cada vez que alguien descargue el fichero</em> puede
3201     -escribir una dirección de e-mail en el campo &quot;Notificar vía e-mail&quot;. Recibirá
3202     -notificaciones cada vez que el fichero sea correctamente descargado o
3203     -eliminado del servidor. Esto es genial si desea una confirmación extra de que
3204     -su e-mail actúa en consecuencia.</li>
3205     -</ul>
3206     -<p>Expirar en un total de # horas:</p>
3207     -<blockquote>
3208     -Introduzca el número máximo de horas que a un fichero subido le está
3209     -permitido permanecer en el servidor. Pasado este período el fichero será
3210     -eliminado del servidor independientemente de si fue descargado o no.</blockquote>
3211     -<p>Expirar en # horas tras la última descarga:</p>
3212     -<blockquote>
3213     -<p>Introduzca el número de horas que a un fichero subido se le permite
3214     -permanecer en el servidor tras haber sido descargado. Una nueva descarga
3215     -alargará el tiempo de vida del ticket durante el número de horas
3216     -especificado. Pasado este período sin actividad el fichero será eliminado del
3217     -servidor.</p>
3218     -<p>Esta funcionalidad, cuando es usada con un largo período (días o semanas),
3219     -permite a los &quot;hot&quot; tickets permanecer vivos mientras están en uso y ser
3220     -elimindos automáticamente cuando ya no son demandados.</p>
3221     -<p>Cuando es usado en un período corto (24 horas o menos), permite eliminar el
3222     -ticket tan pronto como sea descargado, permitiendo al receptor algo de margen
3223     -para descargar el fichero más de una vez.</p>
3224     -</blockquote>
3225     -<p>Expirar tras # descargas:</p>
3226     -<blockquote>
3227     -Introduce el número total de veces que es permitido descargar un fichero
3228     -subido. Alcanzado este número el fichero será eliminado del servidor. Útil si
3229     -quiere asegurarse de que el fichero es descargado sólo una vez por una sola
3230     -persona.</blockquote>
3231     -<p>Si al menos uno de estos parámetros expira el fichero será eliminado. Puede
3232     -configurar cualquier parámetro a &quot;0&quot; para deshabilitar la condición.</p>
3233     -</div>
3234     -</div>
3235     -</body>
3236     -</html>
3237     diff -Nur dl-0.18.1/htdocs/static/guide/fr_FR/index.html dl-master/htdocs/static/guide/fr_FR/index.html
3238     --- dl-0.18.1/htdocs/static/guide/fr_FR/index.html 2017-09-06 12:09:37.000000000 -0400
3239     +++ dl-master/htdocs/static/guide/fr_FR/index.html 1969-12-31 19:00:00.000000000 -0500
3240     @@ -1,451 +0,0 @@
3241     -<?xml version="1.0" encoding="utf-8" ?>
3242     -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3243     -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr_FR" lang="fr_FR">
3244     -<head>
3245     -<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
3246     -<meta name="generator" content="Docutils 0.13.1: http://docutils.sourceforge.net/" />
3247     -<title>Service de téléchargement de ticket</title>
3248     -<style type="text/css">
3249     -
3250     -/*
3251     -:Author: David Goodger (goodger@python.org)
3252     -:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
3253     -:Copyright: This stylesheet has been placed in the public domain.
3254     -
3255     -Default cascading style sheet for the HTML output of Docutils.
3256     -
3257     -See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
3258     -customize this style sheet.
3259     -*/
3260     -
3261     -/* used to remove borders from tables and images */
3262     -.borderless, table.borderless td, table.borderless th {
3263     - border: 0 }
3264     -
3265     -table.borderless td, table.borderless th {
3266     - /* Override padding for "table.docutils td" with "! important".
3267     - The right padding separates the table cells. */
3268     - padding: 0 0.5em 0 0 ! important }
3269     -
3270     -.first {
3271     - /* Override more specific margin styles with "! important". */
3272     - margin-top: 0 ! important }
3273     -
3274     -.last, .with-subtitle {
3275     - margin-bottom: 0 ! important }
3276     -
3277     -.hidden {
3278     - display: none }
3279     -
3280     -.subscript {
3281     - vertical-align: sub;
3282     - font-size: smaller }
3283     -
3284     -.superscript {
3285     - vertical-align: super;
3286     - font-size: smaller }
3287     -
3288     -a.toc-backref {
3289     - text-decoration: none ;
3290     - color: black }
3291     -
3292     -blockquote.epigraph {
3293     - margin: 2em 5em ; }
3294     -
3295     -dl.docutils dd {
3296     - margin-bottom: 0.5em }
3297     -
3298     -object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
3299     - overflow: hidden;
3300     -}
3301     -
3302     -/* Uncomment (and remove this text!) to get bold-faced definition list terms
3303     -dl.docutils dt {
3304     - font-weight: bold }
3305     -*/
3306     -
3307     -div.abstract {
3308     - margin: 2em 5em }
3309     -
3310     -div.abstract p.topic-title {
3311     - font-weight: bold ;
3312     - text-align: center }
3313     -
3314     -div.admonition, div.attention, div.caution, div.danger, div.error,
3315     -div.hint, div.important, div.note, div.tip, div.warning {
3316     - margin: 2em ;
3317     - border: medium outset ;
3318     - padding: 1em }
3319     -
3320     -div.admonition p.admonition-title, div.hint p.admonition-title,
3321     -div.important p.admonition-title, div.note p.admonition-title,
3322     -div.tip p.admonition-title {
3323     - font-weight: bold ;
3324     - font-family: sans-serif }
3325     -
3326     -div.attention p.admonition-title, div.caution p.admonition-title,
3327     -div.danger p.admonition-title, div.error p.admonition-title,
3328     -div.warning p.admonition-title, .code .error {
3329     - color: red ;
3330     - font-weight: bold ;
3331     - font-family: sans-serif }
3332     -
3333     -/* Uncomment (and remove this text!) to get reduced vertical space in
3334     - compound paragraphs.
3335     -div.compound .compound-first, div.compound .compound-middle {
3336     - margin-bottom: 0.5em }
3337     -
3338     -div.compound .compound-last, div.compound .compound-middle {
3339     - margin-top: 0.5em }
3340     -*/
3341     -
3342     -div.dedication {
3343     - margin: 2em 5em ;
3344     - text-align: center ;
3345     - font-style: italic }
3346     -
3347     -div.dedication p.topic-title {
3348     - font-weight: bold ;
3349     - font-style: normal }
3350     -
3351     -div.figure {
3352     - margin-left: 2em ;
3353     - margin-right: 2em }
3354     -
3355     -div.footer, div.header {
3356     - clear: both;
3357     - font-size: smaller }
3358     -
3359     -div.line-block {
3360     - display: block ;
3361     - margin-top: 1em ;
3362     - margin-bottom: 1em }
3363     -
3364     -div.line-block div.line-block {
3365     - margin-top: 0 ;
3366     - margin-bottom: 0 ;
3367     - margin-left: 1.5em }
3368     -
3369     -div.sidebar {
3370     - margin: 0 0 0.5em 1em ;
3371     - border: medium outset ;
3372     - padding: 1em ;
3373     - background-color: #ffffee ;
3374     - width: 40% ;
3375     - float: right ;
3376     - clear: right }
3377     -
3378     -div.sidebar p.rubric {
3379     - font-family: sans-serif ;
3380     - font-size: medium }
3381     -
3382     -div.system-messages {
3383     - margin: 5em }
3384     -
3385     -div.system-messages h1 {
3386     - color: red }
3387     -
3388     -div.system-message {
3389     - border: medium outset ;
3390     - padding: 1em }
3391     -
3392     -div.system-message p.system-message-title {
3393     - color: red ;
3394     - font-weight: bold }
3395     -
3396     -div.topic {
3397     - margin: 2em }
3398     -
3399     -h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
3400     -h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
3401     - margin-top: 0.4em }
3402     -
3403     -h1.title {
3404     - text-align: center }
3405     -
3406     -h2.subtitle {
3407     - text-align: center }
3408     -
3409     -hr.docutils {
3410     - width: 75% }
3411     -
3412     -img.align-left, .figure.align-left, object.align-left, table.align-left {
3413     - clear: left ;
3414     - float: left ;
3415     - margin-right: 1em }
3416     -
3417     -img.align-right, .figure.align-right, object.align-right, table.align-right {
3418     - clear: right ;
3419     - float: right ;
3420     - margin-left: 1em }
3421     -
3422     -img.align-center, .figure.align-center, object.align-center {
3423     - display: block;
3424     - margin-left: auto;
3425     - margin-right: auto;
3426     -}
3427     -
3428     -table.align-center {
3429     - margin-left: auto;
3430     - margin-right: auto;
3431     -}
3432     -
3433     -.align-left {
3434     - text-align: left }
3435     -
3436     -.align-center {
3437     - clear: both ;
3438     - text-align: center }
3439     -
3440     -.align-right {
3441     - text-align: right }
3442     -
3443     -/* reset inner alignment in figures */
3444     -div.align-right {
3445     - text-align: inherit }
3446     -
3447     -/* div.align-center * { */
3448     -/* text-align: left } */
3449     -
3450     -.align-top {
3451     - vertical-align: top }
3452     -
3453     -.align-middle {
3454     - vertical-align: middle }
3455     -
3456     -.align-bottom {
3457     - vertical-align: bottom }
3458     -
3459     -ol.simple, ul.simple {
3460     - margin-bottom: 1em }
3461     -
3462     -ol.arabic {
3463     - list-style: decimal }
3464     -
3465     -ol.loweralpha {
3466     - list-style: lower-alpha }
3467     -
3468     -ol.upperalpha {
3469     - list-style: upper-alpha }
3470     -
3471     -ol.lowerroman {
3472     - list-style: lower-roman }
3473     -
3474     -ol.upperroman {
3475     - list-style: upper-roman }
3476     -
3477     -p.attribution {
3478     - text-align: right ;
3479     - margin-left: 50% }
3480     -
3481     -p.caption {
3482     - font-style: italic }
3483     -
3484     -p.credits {
3485     - font-style: italic ;
3486     - font-size: smaller }
3487     -
3488     -p.label {
3489     - white-space: nowrap }
3490     -
3491     -p.rubric {
3492     - font-weight: bold ;
3493     - font-size: larger ;
3494     - color: maroon ;
3495     - text-align: center }
3496     -
3497     -p.sidebar-title {
3498     - font-family: sans-serif ;
3499     - font-weight: bold ;
3500     - font-size: larger }
3501     -
3502     -p.sidebar-subtitle {
3503     - font-family: sans-serif ;
3504     - font-weight: bold }
3505     -
3506     -p.topic-title {
3507     - font-weight: bold }
3508     -
3509     -pre.address {
3510     - margin-bottom: 0 ;
3511     - margin-top: 0 ;
3512     - font: inherit }
3513     -
3514     -pre.literal-block, pre.doctest-block, pre.math, pre.code {
3515     - margin-left: 2em ;
3516     - margin-right: 2em }
3517     -
3518     -pre.code .ln { color: grey; } /* line numbers */
3519     -pre.code, code { background-color: #eeeeee }
3520     -pre.code .comment, code .comment { color: #5C6576 }
3521     -pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
3522     -pre.code .literal.string, code .literal.string { color: #0C5404 }
3523     -pre.code .name.builtin, code .name.builtin { color: #352B84 }
3524     -pre.code .deleted, code .deleted { background-color: #DEB0A1}
3525     -pre.code .inserted, code .inserted { background-color: #A3D289}
3526     -
3527     -span.classifier {
3528     - font-family: sans-serif ;
3529     - font-style: oblique }
3530     -
3531     -span.classifier-delimiter {
3532     - font-family: sans-serif ;
3533     - font-weight: bold }
3534     -
3535     -span.interpreted {
3536     - font-family: sans-serif }
3537     -
3538     -span.option {
3539     - white-space: nowrap }
3540     -
3541     -span.pre {
3542     - white-space: pre }
3543     -
3544     -span.problematic {
3545     - color: red }
3546     -
3547     -span.section-subtitle {
3548     - /* font-size relative to parent (h1..h6 element) */
3549     - font-size: 80% }
3550     -
3551     -table.citation {
3552     - border-left: solid 1px gray;
3553     - margin-left: 1px }
3554     -
3555     -table.docinfo {
3556     - margin: 2em 4em }
3557     -
3558     -table.docutils {
3559     - margin-top: 0.5em ;
3560     - margin-bottom: 0.5em }
3561     -
3562     -table.footnote {
3563     - border-left: solid 1px black;
3564     - margin-left: 1px }
3565     -
3566     -table.docutils td, table.docutils th,
3567     -table.docinfo td, table.docinfo th {
3568     - padding-left: 0.5em ;
3569     - padding-right: 0.5em ;
3570     - vertical-align: top }
3571     -
3572     -table.docutils th.field-name, table.docinfo th.docinfo-name {
3573     - font-weight: bold ;
3574     - text-align: left ;
3575     - white-space: nowrap ;
3576     - padding-left: 0 }
3577     -
3578     -/* "booktabs" style (no vertical lines) */
3579     -table.docutils.booktabs {
3580     - border: 0px;
3581     - border-top: 2px solid;
3582     - border-bottom: 2px solid;
3583     - border-collapse: collapse;
3584     -}
3585     -table.docutils.booktabs * {
3586     - border: 0px;
3587     -}
3588     -table.docutils.booktabs th {
3589     - border-bottom: thin solid;
3590     - text-align: left;
3591     -}
3592     -
3593     -h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
3594     -h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
3595     - font-size: 100% }
3596     -
3597     -ul.auto-toc {
3598     - list-style-type: none }
3599     -
3600     -</style>
3601     -</head>
3602     -<body>
3603     -<div class="document" id="service-de-telechargement-de-ticket">
3604     -<h1 class="title">Service de téléchargement de ticket</h1>
3605     -
3606     -<div class="contents topic" id="sommaire">
3607     -<p class="topic-title first">Sommaire</p>
3608     -<ul class="simple">
3609     -<li><a class="reference internal" href="#guide-rapide-pour-envoyer-des-pieces-jointes" id="id1">Guide rapide pour envoyer des pièces jointes</a></li>
3610     -<li><a class="reference internal" href="#guide-rapide-pour-recevoir-des-pieces-jointes" id="id2">Guide rapide pour recevoir des pièces jointes</a></li>
3611     -<li><a class="reference internal" href="#parametres-avances" id="id3">Paramètres avancés</a></li>
3612     -</ul>
3613     -</div>
3614     -<div class="section" id="guide-rapide-pour-envoyer-des-pieces-jointes">
3615     -<h1><a class="toc-backref" href="#id1">Guide rapide pour envoyer des pièces jointes</a></h1>
3616     -<p>Tout d'abord, allez sur <a class="reference external" href="https://dl.example.com/">https://dl.example.com/</a> et authentifier vous avec votre
3617     -nom d'utilisateur et votre mot de passe.</p>
3618     -<p>Vous devriez voir la page ci-dessous:</p>
3619     -<img alt="t-step-1.png" src="t-step-1.png" />
3620     -<ol class="arabic simple">
3621     -<li>Sélectionnez le fichier à envoyer avec le bouton &quot;Parcourir&quot;</li>
3622     -<li>Cliquer sur le bouton &quot;Télécharger&quot; pour envoyer votre fichier.</li>
3623     -</ol>
3624     -<img alt="t-step-2.png" src="t-step-2.png" />
3625     -<ol class="arabic simple" start="3">
3626     -<li>Cliquez sur le bouton &quot;Envoyer par e-mail&quot; pour envoyer par e-mail le lien
3627     -contenant le fichier que vous venez de télécharger.</li>
3628     -</ol>
3629     -<p>Par défaut, le destinataire dispose d'une semaine pour télécharger le fichier
3630     -avant qu'il ne soit automatiquement supprimé. Vous pouvez modifier ce
3631     -comportement en définissant certains paramètres avant de le télécharger.</p>
3632     -<p>Vous pouvez voir la liste des fichiers que vous avez téléchargés et aussi les
3633     -gérer en cliquant sur &quot;Tickets actifs&quot;, au bas de la page.</p>
3634     -</div>
3635     -<div class="section" id="guide-rapide-pour-recevoir-des-pieces-jointes">
3636     -<h1><a class="toc-backref" href="#id2">Guide rapide pour recevoir des pièces jointes</a></h1>
3637     -<p>Tout d'abord, allez sur <a class="reference external" href="https://dl.example.com/">https://dl.example.com/</a> et authentifier vous avec votre
3638     -nom d'utilisateur et votre mot de passe.</p>
3639     -<p>Vous devriez voir la page ci-dessous:</p>
3640     -<img alt="g-step-1.png" src="g-step-1.png" />
3641     -<ol class="arabic simple">
3642     -<li>Cliquez sur &quot;Nouvelle concession&quot; au bas de la page :</li>
3643     -</ol>
3644     -<img alt="g-step-2.png" src="g-step-2.png" />
3645     -<ol class="arabic simple" start="2">
3646     -<li>Entrer <em>votre</em> adresse email.</li>
3647     -<li>Cliquez sur &quot;Créer&quot; pour générer une concession:</li>
3648     -</ol>
3649     -<img alt="g-step-3.png" src="g-step-3.png" />
3650     -<ol class="arabic simple" start="4">
3651     -<li>Cliquez sur &quot;Envoyer par e-mail&quot; pour envoyer par e-mail le lien qui
3652     -permettra de vous faire parvenir un fichier.</li>
3653     -</ol>
3654     -<p>Le destinataire devra simplement suivre les instructions contenues dans le
3655     -mail. Une fois, le fichier téléchargé sur le serveur, vous recevrez un e-mail
3656     -contenant un autre lien vers le fichier que vous pourrez télécharger.</p>
3657     -</div>
3658     -<div class="section" id="parametres-avances">
3659     -<h1><a class="toc-backref" href="#id3">Paramètres avancés</a></h1>
3660     -<p>Avant de télécharger un fichier, vous pouvez personnaliser les paramètres de
3661     -téléchargement et de supression en modifiant les &quot;Paramètres avancés&quot;:</p>
3662     -<img alt="t-advanced.png" src="t-advanced.png" />
3663     -<ul class="simple">
3664     -<li><em>Si vous souhaitez que votre fichier ne soit jamais supprimé</em> cocher &quot;Ticket
3665     -permanent/téléchargement&quot;. Ceci rendra votre fichier toujours disponible
3666     -jusqu'à ce que vous le retiriez manuellement.</li>
3667     -<li><em>Si vous voulez être averti chaque fois que quelqu'un télécharge le fichier</em>,
3668     -vous pouvez renseigner votre adresse e-mail dans le champs &quot;Notifier par
3669     -e-mail&quot;. Vous recevrez une notification chaque fois que le fichier sera
3670     -téléchargé avec succès ou retiré du serveur.</li>
3671     -</ul>
3672     -<p>Expirera dans # jours:</p>
3673     -<blockquote>
3674     -Indiquer le nombre de jours maximal durant lesquels ce fichier pourra être
3675     -téléchargé. Passé ce délai ce fichier ne pourra plus être téléchargé et sera
3676     -automatiquement supprimé.</blockquote>
3677     -<p>Expirera dans # heures après le dernier téléchargement:</p>
3678     -<blockquote>
3679     -Indiquer le nombre d'heures pendant lesquelles ce fichier restera disponible
3680     -après avoir été téléchargé. Si celui-ci n'est pas téléchargé pendant le délai
3681     -indiqué, il sera automatiquement supprimé.</blockquote>
3682     -<p>Expirera après # téléchargement:</p>
3683     -<blockquote>
3684     -Indiquer le nombre total de téléchargements autorisé pour ce fichier. Au-delà
3685     -de cette limite, ce fichier sera automatiquement supprimé.</blockquote>
3686     -<p>Si au moins un de ces paramètres est appliqué le fichier sera supprimé. Mettre
3687     -n'importe quel paramètre à &quot;0&quot; pour désactiver son état.</p>
3688     -</div>
3689     -</div>
3690     -</body>
3691     -</html>
3692     diff -Nur dl-0.18.1/htdocs/static/guide/it_IT/index.html dl-master/htdocs/static/guide/it_IT/index.html
3693     --- dl-0.18.1/htdocs/static/guide/it_IT/index.html 2017-09-06 12:09:37.000000000 -0400
3694     +++ dl-master/htdocs/static/guide/it_IT/index.html 1969-12-31 19:00:00.000000000 -0500
3695     @@ -1,461 +0,0 @@
3696     -<?xml version="1.0" encoding="utf-8" ?>
3697     -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3698     -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it_IT" lang="it_IT">
3699     -<head>
3700     -<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
3701     -<meta name="generator" content="Docutils 0.13.1: http://docutils.sourceforge.net/" />
3702     -<title>Download ticket service</title>
3703     -<style type="text/css">
3704     -
3705     -/*
3706     -:Author: David Goodger (goodger@python.org)
3707     -:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
3708     -:Copyright: This stylesheet has been placed in the public domain.
3709     -
3710     -Default cascading style sheet for the HTML output of Docutils.
3711     -
3712     -See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
3713     -customize this style sheet.
3714     -*/
3715     -
3716     -/* used to remove borders from tables and images */
3717     -.borderless, table.borderless td, table.borderless th {
3718     - border: 0 }
3719     -
3720     -table.borderless td, table.borderless th {
3721     - /* Override padding for "table.docutils td" with "! important".
3722     - The right padding separates the table cells. */
3723     - padding: 0 0.5em 0 0 ! important }
3724     -
3725     -.first {
3726     - /* Override more specific margin styles with "! important". */
3727     - margin-top: 0 ! important }
3728     -
3729     -.last, .with-subtitle {
3730     - margin-bottom: 0 ! important }
3731     -
3732     -.hidden {
3733     - display: none }
3734     -
3735     -.subscript {
3736     - vertical-align: sub;
3737     - font-size: smaller }
3738     -
3739     -.superscript {
3740     - vertical-align: super;
3741     - font-size: smaller }
3742     -
3743     -a.toc-backref {
3744     - text-decoration: none ;
3745     - color: black }
3746     -
3747     -blockquote.epigraph {
3748     - margin: 2em 5em ; }
3749     -
3750     -dl.docutils dd {
3751     - margin-bottom: 0.5em }
3752     -
3753     -object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
3754     - overflow: hidden;
3755     -}
3756     -
3757     -/* Uncomment (and remove this text!) to get bold-faced definition list terms
3758     -dl.docutils dt {
3759     - font-weight: bold }
3760     -*/
3761     -
3762     -div.abstract {
3763     - margin: 2em 5em }
3764     -
3765     -div.abstract p.topic-title {
3766     - font-weight: bold ;
3767     - text-align: center }
3768     -
3769     -div.admonition, div.attention, div.caution, div.danger, div.error,
3770     -div.hint, div.important, div.note, div.tip, div.warning {
3771     - margin: 2em ;
3772     - border: medium outset ;
3773     - padding: 1em }
3774     -
3775     -div.admonition p.admonition-title, div.hint p.admonition-title,
3776     -div.important p.admonition-title, div.note p.admonition-title,
3777     -div.tip p.admonition-title {
3778     - font-weight: bold ;
3779     - font-family: sans-serif }
3780     -
3781     -div.attention p.admonition-title, div.caution p.admonition-title,
3782     -div.danger p.admonition-title, div.error p.admonition-title,
3783     -div.warning p.admonition-title, .code .error {
3784     - color: red ;
3785     - font-weight: bold ;
3786     - font-family: sans-serif }
3787     -
3788     -/* Uncomment (and remove this text!) to get reduced vertical space in
3789     - compound paragraphs.
3790     -div.compound .compound-first, div.compound .compound-middle {
3791     - margin-bottom: 0.5em }
3792     -
3793     -div.compound .compound-last, div.compound .compound-middle {
3794     - margin-top: 0.5em }
3795     -*/
3796     -
3797     -div.dedication {
3798     - margin: 2em 5em ;
3799     - text-align: center ;
3800     - font-style: italic }
3801     -
3802     -div.dedication p.topic-title {
3803     - font-weight: bold ;
3804     - font-style: normal }
3805     -
3806     -div.figure {
3807     - margin-left: 2em ;
3808     - margin-right: 2em }
3809     -
3810     -div.footer, div.header {
3811     - clear: both;
3812     - font-size: smaller }
3813     -
3814     -div.line-block {
3815     - display: block ;
3816     - margin-top: 1em ;
3817     - margin-bottom: 1em }
3818     -
3819     -div.line-block div.line-block {
3820     - margin-top: 0 ;
3821     - margin-bottom: 0 ;
3822     - margin-left: 1.5em }
3823     -
3824     -div.sidebar {
3825     - margin: 0 0 0.5em 1em ;
3826     - border: medium outset ;
3827     - padding: 1em ;
3828     - background-color: #ffffee ;
3829     - width: 40% ;
3830     - float: right ;
3831     - clear: right }
3832     -
3833     -div.sidebar p.rubric {
3834     - font-family: sans-serif ;
3835     - font-size: medium }
3836     -
3837     -div.system-messages {
3838     - margin: 5em }
3839     -
3840     -div.system-messages h1 {
3841     - color: red }
3842     -
3843     -div.system-message {
3844     - border: medium outset ;
3845     - padding: 1em }
3846     -
3847     -div.system-message p.system-message-title {
3848     - color: red ;
3849     - font-weight: bold }
3850     -
3851     -div.topic {
3852     - margin: 2em }
3853     -
3854     -h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
3855     -h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
3856     - margin-top: 0.4em }
3857     -
3858     -h1.title {
3859     - text-align: center }
3860     -
3861     -h2.subtitle {
3862     - text-align: center }
3863     -
3864     -hr.docutils {
3865     - width: 75% }
3866     -
3867     -img.align-left, .figure.align-left, object.align-left, table.align-left {
3868     - clear: left ;
3869     - float: left ;
3870     - margin-right: 1em }
3871     -
3872     -img.align-right, .figure.align-right, object.align-right, table.align-right {
3873     - clear: right ;
3874     - float: right ;
3875     - margin-left: 1em }
3876     -
3877     -img.align-center, .figure.align-center, object.align-center {
3878     - display: block;
3879     - margin-left: auto;
3880     - margin-right: auto;
3881     -}
3882     -
3883     -table.align-center {
3884     - margin-left: auto;
3885     - margin-right: auto;
3886     -}
3887     -
3888     -.align-left {
3889     - text-align: left }
3890     -
3891     -.align-center {
3892     - clear: both ;
3893     - text-align: center }
3894     -
3895     -.align-right {
3896     - text-align: right }
3897     -
3898     -/* reset inner alignment in figures */
3899     -div.align-right {
3900     - text-align: inherit }
3901     -
3902     -/* div.align-center * { */
3903     -/* text-align: left } */
3904     -
3905     -.align-top {
3906     - vertical-align: top }
3907     -
3908     -.align-middle {
3909     - vertical-align: middle }
3910     -
3911     -.align-bottom {
3912     - vertical-align: bottom }
3913     -
3914     -ol.simple, ul.simple {
3915     - margin-bottom: 1em }
3916     -
3917     -ol.arabic {
3918     - list-style: decimal }
3919     -
3920     -ol.loweralpha {
3921     - list-style: lower-alpha }
3922     -
3923     -ol.upperalpha {
3924     - list-style: upper-alpha }
3925     -
3926     -ol.lowerroman {
3927     - list-style: lower-roman }
3928     -
3929     -ol.upperroman {
3930     - list-style: upper-roman }
3931     -
3932     -p.attribution {
3933     - text-align: right ;
3934     - margin-left: 50% }
3935     -
3936     -p.caption {
3937     - font-style: italic }
3938     -
3939     -p.credits {
3940     - font-style: italic ;
3941     - font-size: smaller }
3942     -
3943     -p.label {
3944     - white-space: nowrap }
3945     -
3946     -p.rubric {
3947     - font-weight: bold ;
3948     - font-size: larger ;
3949     - color: maroon ;
3950     - text-align: center }
3951     -
3952     -p.sidebar-title {
3953     - font-family: sans-serif ;
3954     - font-weight: bold ;
3955     - font-size: larger }
3956     -
3957     -p.sidebar-subtitle {
3958     - font-family: sans-serif ;
3959     - font-weight: bold }
3960     -
3961     -p.topic-title {
3962     - font-weight: bold }
3963     -
3964     -pre.address {
3965     - margin-bottom: 0 ;
3966     - margin-top: 0 ;
3967     - font: inherit }
3968     -
3969     -pre.literal-block, pre.doctest-block, pre.math, pre.code {
3970     - margin-left: 2em ;
3971     - margin-right: 2em }
3972     -
3973     -pre.code .ln { color: grey; } /* line numbers */
3974     -pre.code, code { background-color: #eeeeee }
3975     -pre.code .comment, code .comment { color: #5C6576 }
3976     -pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
3977     -pre.code .literal.string, code .literal.string { color: #0C5404 }
3978     -pre.code .name.builtin, code .name.builtin { color: #352B84 }
3979     -pre.code .deleted, code .deleted { background-color: #DEB0A1}
3980     -pre.code .inserted, code .inserted { background-color: #A3D289}
3981     -
3982     -span.classifier {
3983     - font-family: sans-serif ;
3984     - font-style: oblique }
3985     -
3986     -span.classifier-delimiter {
3987     - font-family: sans-serif ;
3988     - font-weight: bold }
3989     -
3990     -span.interpreted {
3991     - font-family: sans-serif }
3992     -
3993     -span.option {
3994     - white-space: nowrap }
3995     -
3996     -span.pre {
3997     - white-space: pre }
3998     -
3999     -span.problematic {
4000     - color: red }
4001     -
4002     -span.section-subtitle {
4003     - /* font-size relative to parent (h1..h6 element) */
4004     - font-size: 80% }
4005     -
4006     -table.citation {
4007     - border-left: solid 1px gray;
4008     - margin-left: 1px }
4009     -
4010     -table.docinfo {
4011     - margin: 2em 4em }
4012     -
4013     -table.docutils {
4014     - margin-top: 0.5em ;
4015     - margin-bottom: 0.5em }
4016     -
4017     -table.footnote {
4018     - border-left: solid 1px black;
4019     - margin-left: 1px }
4020     -
4021     -table.docutils td, table.docutils th,
4022     -table.docinfo td, table.docinfo th {
4023     - padding-left: 0.5em ;
4024     - padding-right: 0.5em ;
4025     - vertical-align: top }
4026     -
4027     -table.docutils th.field-name, table.docinfo th.docinfo-name {
4028     - font-weight: bold ;
4029     - text-align: left ;
4030     - white-space: nowrap ;
4031     - padding-left: 0 }
4032     -
4033     -/* "booktabs" style (no vertical lines) */
4034     -table.docutils.booktabs {
4035     - border: 0px;
4036     - border-top: 2px solid;
4037     - border-bottom: 2px solid;
4038     - border-collapse: collapse;
4039     -}
4040     -table.docutils.booktabs * {
4041     - border: 0px;
4042     -}
4043     -table.docutils.booktabs th {
4044     - border-bottom: thin solid;
4045     - text-align: left;
4046     -}
4047     -
4048     -h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
4049     -h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
4050     - font-size: 100% }
4051     -
4052     -ul.auto-toc {
4053     - list-style-type: none }
4054     -
4055     -</style>
4056     -</head>
4057     -<body>
4058     -<div class="document" id="download-ticket-service">
4059     -<h1 class="title">Download ticket service</h1>
4060     -
4061     -<div class="contents topic" id="indice">
4062     -<p class="topic-title first">Indice</p>
4063     -<ul class="simple">
4064     -<li><a class="reference internal" href="#guida-rapida-passo-passo-all-invio-degli-allegati" id="id1">Guida rapida passo-passo all'invio degli allegati</a></li>
4065     -<li><a class="reference internal" href="#guida-rapida-passo-passo-alla-ricezione-degli-allegati" id="id2">Guida rapida passo-passo alla ricezione degli allegati</a></li>
4066     -<li><a class="reference internal" href="#parametri-avanzati" id="id3">Parametri avanzati</a></li>
4067     -</ul>
4068     -</div>
4069     -<div class="section" id="guida-rapida-passo-passo-all-invio-degli-allegati">
4070     -<h1><a class="toc-backref" href="#id1">Guida rapida passo-passo all'invio degli allegati</a></h1>
4071     -<p>Collegarsi al sito <a class="reference external" href="https://dl.example.com/">https://dl.example.com/</a> ed autenticarsi col proprio nome
4072     -utente e password.</p>
4073     -<p>La schermata iniziale si presenta come segue:</p>
4074     -<img alt="t-step-1.png" src="t-step-1.png" />
4075     -<ol class="arabic simple">
4076     -<li>Cliccare su &quot;Sfoglia&quot;, come indicato nell'immagine e selezionare il file
4077     -desiderato da inviare.</li>
4078     -<li>Cliccare su &quot;Invia&quot; ed attendere fino al completamento dell'operazione,
4079     -indicata dalla seguente schermata:</li>
4080     -</ol>
4081     -<img alt="t-step-2.png" src="t-step-2.png" />
4082     -<ol class="arabic simple" start="3">
4083     -<li>Cliccare su &quot;Invia per e-mail&quot; per inviare il collegamento al file appena
4084     -caricato via e-mail ad un qualsiasi destinatario usando il proprio programma
4085     -di posta elettronica.</li>
4086     -</ol>
4087     -<p>Con le impostazioni predefinite, il destinatario avrà una settimana di tempo
4088     -per scaricare il file prima che venga eliminato automaticamente. È possibile
4089     -cambiare la scadenza impostando alcuni parametri prima dell'invio del file.</p>
4090     -<p>La lista dei file caricati è gestibile cliccando sul collegamento &quot;Ticket
4091     -attivi&quot;, disponibile in basso alla pagina.</p>
4092     -</div>
4093     -<div class="section" id="guida-rapida-passo-passo-alla-ricezione-degli-allegati">
4094     -<h1><a class="toc-backref" href="#id2">Guida rapida passo-passo alla ricezione degli allegati</a></h1>
4095     -<p>Collegarsi al sito <a class="reference external" href="https://dl.example.com/">https://dl.example.com/</a> ed autenticarsi col proprio nome
4096     -utente e password.</p>
4097     -<p>La schermata iniziale si presenta come segue:</p>
4098     -<img alt="g-step-1.png" src="g-step-1.png" />
4099     -<ol class="arabic simple">
4100     -<li>Cliccare su &quot;Nuova concessione&quot;, in basso alla pagina.</li>
4101     -</ol>
4102     -<img alt="g-step-2.png" src="g-step-2.png" />
4103     -<ol class="arabic simple" start="2">
4104     -<li>Inserire il <em>proprio</em> indirizzo e-mail.</li>
4105     -<li>Cliccare su &quot;Crea&quot; per generare la concessione.</li>
4106     -</ol>
4107     -<img alt="g-step-3.png" src="g-step-3.png" />
4108     -<ol class="arabic simple" start="4">
4109     -<li>Cliccare su &quot;Invia per email&quot; per inviare la concessione e le istruzioni di
4110     -utilizzo tramite e-mail ad un qualsiasi destinatario.</li>
4111     -</ol>
4112     -<p>Il destinatario, una volta ricevuto il collegamento alla concessione, dovrà
4113     -semplicemente seguire le indicazioni. Quando il destinatario avrà terminato
4114     -l'invio del file, riceverete immediatamente (tramite e-mail) conferma ed un
4115     -collegamento al file appena trasferito.</p>
4116     -</div>
4117     -<div class="section" id="parametri-avanzati">
4118     -<h1><a class="toc-backref" href="#id3">Parametri avanzati</a></h1>
4119     -<p>Prima di procedere all'invio di un file, è possibile impostare la sua
4120     -scadenza accedendo ai parametri avanzati:</p>
4121     -<img alt="t-advanced.png" src="t-advanced.png" />
4122     -<ul class="simple">
4123     -<li><em>Se desiderate che il file non venga mai eliminato</em>, abilitare l'opzione
4124     -&quot;Nessuna scadenza&quot;, disponibile nel pannello &quot;Avanzate&quot;.</li>
4125     -<li><em>Se desiderate ricevere notifica per ogni singolo scaricamento</em>, inserite il
4126     -vostro indirizzo e-mail nella casella &quot;Notifica via e-mail&quot;, disponibile nel
4127     -pannello avanzate.</li>
4128     -</ul>
4129     -<p>Scadenza in # giorni:</p>
4130     -<blockquote>
4131     -Inserire il numero massimo di giorni che il file inviato verrà mantenuto nel
4132     -server. Passato il termine, il file viene eliminato automaticamente, sia che
4133     -venga scaricato o meno.</blockquote>
4134     -<p>Scadenza in # ore dopo l'ultimo scaricamento:</p>
4135     -<blockquote>
4136     -<p>Inserire il numero ore che il file inviato verrà mantenuto nel server dopo
4137     -essere stato scaricato. Ogni scaricamento estende il termine del numero di
4138     -ore specificato. Passato il termine, il file viene eliminato automaticamente.</p>
4139     -<p>Questa funzionalità, usata insieme ad un lungo periodo (giorni o settimane),
4140     -permette di mantenere ticket molto utilizzati attivi per un periodo
4141     -indefinito, e rimuoverli automaticamente alla cessazione di utilizzo.</p>
4142     -<p>Usata invece con periodi brevi (24 ore o meno), consente di eliminare il
4143     -ticket rapidamente dopo lo scaricamento, dando al destinatario del margine
4144     -per effettuarne altri.</p>
4145     -</blockquote>
4146     -<p>Scadenza in # scaricamenti</p>
4147     -<blockquote>
4148     -Inserire il numero di volte che il file può venire scaricato in totale dal
4149     -server. Passato il termine, il file viene eliminato automaticamente.</blockquote>
4150     -<p>La scadenza del ticket viene effettuata alla scadenza di uno qualsiasi dei
4151     -termini impostati (solitamente del termine che arriva prima). È possibile
4152     -impostare un parametro a &quot;0&quot; per disabilitarne il relativo termine.</p>
4153     -</div>
4154     -</div>
4155     -</body>
4156     -</html>
4157     diff -Nur dl-0.18.1/htdocs/static/guide/ja_JP/index.html dl-master/htdocs/static/guide/ja_JP/index.html
4158     --- dl-0.18.1/htdocs/static/guide/ja_JP/index.html 2017-09-06 12:09:37.000000000 -0400
4159     +++ dl-master/htdocs/static/guide/ja_JP/index.html 1969-12-31 19:00:00.000000000 -0500
4160     @@ -1,442 +0,0 @@
4161     -<?xml version="1.0" encoding="utf-8" ?>
4162     -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4163     -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja_JP" lang="ja_JP">
4164     -<head>
4165     -<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
4166     -<meta name="generator" content="Docutils 0.13.1: http://docutils.sourceforge.net/" />
4167     -<title>ダウンロードチケットサービス</title>
4168     -<style type="text/css">
4169     -
4170     -/*
4171     -:Author: David Goodger (goodger@python.org)
4172     -:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
4173     -:Copyright: This stylesheet has been placed in the public domain.
4174     -
4175     -Default cascading style sheet for the HTML output of Docutils.
4176     -
4177     -See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
4178     -customize this style sheet.
4179     -*/
4180     -
4181     -/* used to remove borders from tables and images */
4182     -.borderless, table.borderless td, table.borderless th {
4183     - border: 0 }
4184     -
4185     -table.borderless td, table.borderless th {
4186     - /* Override padding for "table.docutils td" with "! important".
4187     - The right padding separates the table cells. */
4188     - padding: 0 0.5em 0 0 ! important }
4189     -
4190     -.first {
4191     - /* Override more specific margin styles with "! important". */
4192     - margin-top: 0 ! important }
4193     -
4194     -.last, .with-subtitle {
4195     - margin-bottom: 0 ! important }
4196     -
4197     -.hidden {
4198     - display: none }
4199     -
4200     -.subscript {
4201     - vertical-align: sub;
4202     - font-size: smaller }
4203     -
4204     -.superscript {
4205     - vertical-align: super;
4206     - font-size: smaller }
4207     -
4208     -a.toc-backref {
4209     - text-decoration: none ;
4210     - color: black }
4211     -
4212     -blockquote.epigraph {
4213     - margin: 2em 5em ; }
4214     -
4215     -dl.docutils dd {
4216     - margin-bottom: 0.5em }
4217     -
4218     -object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
4219     - overflow: hidden;
4220     -}
4221     -
4222     -/* Uncomment (and remove this text!) to get bold-faced definition list terms
4223     -dl.docutils dt {
4224     - font-weight: bold }
4225     -*/
4226     -
4227     -div.abstract {
4228     - margin: 2em 5em }
4229     -
4230     -div.abstract p.topic-title {
4231     - font-weight: bold ;
4232     - text-align: center }
4233     -
4234     -div.admonition, div.attention, div.caution, div.danger, div.error,
4235     -div.hint, div.important, div.note, div.tip, div.warning {
4236     - margin: 2em ;
4237     - border: medium outset ;
4238     - padding: 1em }
4239     -
4240     -div.admonition p.admonition-title, div.hint p.admonition-title,
4241     -div.important p.admonition-title, div.note p.admonition-title,
4242     -div.tip p.admonition-title {
4243     - font-weight: bold ;
4244     - font-family: sans-serif }
4245     -
4246     -div.attention p.admonition-title, div.caution p.admonition-title,
4247     -div.danger p.admonition-title, div.error p.admonition-title,
4248     -div.warning p.admonition-title, .code .error {
4249     - color: red ;
4250     - font-weight: bold ;
4251     - font-family: sans-serif }
4252     -
4253     -/* Uncomment (and remove this text!) to get reduced vertical space in
4254     - compound paragraphs.
4255     -div.compound .compound-first, div.compound .compound-middle {
4256     - margin-bottom: 0.5em }
4257     -
4258     -div.compound .compound-last, div.compound .compound-middle {
4259     - margin-top: 0.5em }
4260     -*/
4261     -
4262     -div.dedication {
4263     - margin: 2em 5em ;
4264     - text-align: center ;
4265     - font-style: italic }
4266     -
4267     -div.dedication p.topic-title {
4268     - font-weight: bold ;
4269     - font-style: normal }
4270     -
4271     -div.figure {
4272     - margin-left: 2em ;
4273     - margin-right: 2em }
4274     -
4275     -div.footer, div.header {
4276     - clear: both;
4277     - font-size: smaller }
4278     -
4279     -div.line-block {
4280     - display: block ;
4281     - margin-top: 1em ;
4282     - margin-bottom: 1em }
4283     -
4284     -div.line-block div.line-block {
4285     - margin-top: 0 ;
4286     - margin-bottom: 0 ;
4287     - margin-left: 1.5em }
4288     -
4289     -div.sidebar {
4290     - margin: 0 0 0.5em 1em ;
4291     - border: medium outset ;
4292     - padding: 1em ;
4293     - background-color: #ffffee ;
4294     - width: 40% ;
4295     - float: right ;
4296     - clear: right }
4297     -
4298     -div.sidebar p.rubric {
4299     - font-family: sans-serif ;
4300     - font-size: medium }
4301     -
4302     -div.system-messages {
4303     - margin: 5em }
4304     -
4305     -div.system-messages h1 {
4306     - color: red }
4307     -
4308     -div.system-message {
4309     - border: medium outset ;
4310     - padding: 1em }
4311     -
4312     -div.system-message p.system-message-title {
4313     - color: red ;
4314     - font-weight: bold }
4315     -
4316     -div.topic {
4317     - margin: 2em }
4318     -
4319     -h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
4320     -h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
4321     - margin-top: 0.4em }
4322     -
4323     -h1.title {
4324     - text-align: center }
4325     -
4326     -h2.subtitle {
4327     - text-align: center }
4328     -
4329     -hr.docutils {
4330     - width: 75% }
4331     -
4332     -img.align-left, .figure.align-left, object.align-left, table.align-left {
4333     - clear: left ;
4334     - float: left ;
4335     - margin-right: 1em }
4336     -
4337     -img.align-right, .figure.align-right, object.align-right, table.align-right {
4338     - clear: right ;
4339     - float: right ;
4340     - margin-left: 1em }
4341     -
4342     -img.align-center, .figure.align-center, object.align-center {
4343     - display: block;
4344     - margin-left: auto;
4345     - margin-right: auto;
4346     -}
4347     -
4348     -table.align-center {
4349     - margin-left: auto;
4350     - margin-right: auto;
4351     -}
4352     -
4353     -.align-left {
4354     - text-align: left }
4355     -
4356     -.align-center {
4357     - clear: both ;
4358     - text-align: center }
4359     -
4360     -.align-right {
4361     - text-align: right }
4362     -
4363     -/* reset inner alignment in figures */
4364     -div.align-right {
4365     - text-align: inherit }
4366     -
4367     -/* div.align-center * { */
4368     -/* text-align: left } */
4369     -
4370     -.align-top {
4371     - vertical-align: top }
4372     -
4373     -.align-middle {
4374     - vertical-align: middle }
4375     -
4376     -.align-bottom {
4377     - vertical-align: bottom }
4378     -
4379     -ol.simple, ul.simple {
4380     - margin-bottom: 1em }
4381     -
4382     -ol.arabic {
4383     - list-style: decimal }
4384     -
4385     -ol.loweralpha {
4386     - list-style: lower-alpha }
4387     -
4388     -ol.upperalpha {
4389     - list-style: upper-alpha }
4390     -
4391     -ol.lowerroman {
4392     - list-style: lower-roman }
4393     -
4394     -ol.upperroman {
4395     - list-style: upper-roman }
4396     -
4397     -p.attribution {
4398     - text-align: right ;
4399     - margin-left: 50% }
4400     -
4401     -p.caption {
4402     - font-style: italic }
4403     -
4404     -p.credits {
4405     - font-style: italic ;
4406     - font-size: smaller }
4407     -
4408     -p.label {
4409     - white-space: nowrap }
4410     -
4411     -p.rubric {
4412     - font-weight: bold ;
4413     - font-size: larger ;
4414     - color: maroon ;
4415     - text-align: center }
4416     -
4417     -p.sidebar-title {
4418     - font-family: sans-serif ;
4419     - font-weight: bold ;
4420     - font-size: larger }
4421     -
4422     -p.sidebar-subtitle {
4423     - font-family: sans-serif ;
4424     - font-weight: bold }
4425     -
4426     -p.topic-title {
4427     - font-weight: bold }
4428     -
4429     -pre.address {
4430     - margin-bottom: 0 ;
4431     - margin-top: 0 ;
4432     - font: inherit }
4433     -
4434     -pre.literal-block, pre.doctest-block, pre.math, pre.code {
4435     - margin-left: 2em ;
4436     - margin-right: 2em }
4437     -
4438     -pre.code .ln { color: grey; } /* line numbers */
4439     -pre.code, code { background-color: #eeeeee }
4440     -pre.code .comment, code .comment { color: #5C6576 }
4441     -pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
4442     -pre.code .literal.string, code .literal.string { color: #0C5404 }
4443     -pre.code .name.builtin, code .name.builtin { color: #352B84 }
4444     -pre.code .deleted, code .deleted { background-color: #DEB0A1}
4445     -pre.code .inserted, code .inserted { background-color: #A3D289}
4446     -
4447     -span.classifier {
4448     - font-family: sans-serif ;
4449     - font-style: oblique }
4450     -
4451     -span.classifier-delimiter {
4452     - font-family: sans-serif ;
4453     - font-weight: bold }
4454     -
4455     -span.interpreted {
4456     - font-family: sans-serif }
4457     -
4458     -span.option {
4459     - white-space: nowrap }
4460     -
4461     -span.pre {
4462     - white-space: pre }
4463     -
4464     -span.problematic {
4465     - color: red }
4466     -
4467     -span.section-subtitle {
4468     - /* font-size relative to parent (h1..h6 element) */
4469     - font-size: 80% }
4470     -
4471     -table.citation {
4472     - border-left: solid 1px gray;
4473     - margin-left: 1px }
4474     -
4475     -table.docinfo {
4476     - margin: 2em 4em }
4477     -
4478     -table.docutils {
4479     - margin-top: 0.5em ;
4480     - margin-bottom: 0.5em }
4481     -
4482     -table.footnote {
4483     - border-left: solid 1px black;
4484     - margin-left: 1px }
4485     -
4486     -table.docutils td, table.docutils th,
4487     -table.docinfo td, table.docinfo th {
4488     - padding-left: 0.5em ;
4489     - padding-right: 0.5em ;
4490     - vertical-align: top }
4491     -
4492     -table.docutils th.field-name, table.docinfo th.docinfo-name {
4493     - font-weight: bold ;
4494     - text-align: left ;
4495     - white-space: nowrap ;
4496     - padding-left: 0 }
4497     -
4498     -/* "booktabs" style (no vertical lines) */
4499     -table.docutils.booktabs {
4500     - border: 0px;
4501     - border-top: 2px solid;
4502     - border-bottom: 2px solid;
4503     - border-collapse: collapse;
4504     -}
4505     -table.docutils.booktabs * {
4506     - border: 0px;
4507     -}
4508     -table.docutils.booktabs th {
4509     - border-bottom: thin solid;
4510     - text-align: left;
4511     -}
4512     -
4513     -h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
4514     -h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
4515     - font-size: 100% }
4516     -
4517     -ul.auto-toc {
4518     - list-style-type: none }
4519     -
4520     -</style>
4521     -</head>
4522     -<body>
4523     -<div class="document" id="id1">
4524     -<h1 class="title">ダウンロードチケットサービス</h1>
4525     -
4526     -<div class="contents topic" id="id2">
4527     -<p class="topic-title first">目次</p>
4528     -<ul class="simple">
4529     -<li><a class="reference internal" href="#id3" id="id6">簡易版 添付送信ガイド</a></li>
4530     -<li><a class="reference internal" href="#id4" id="id7">簡易版 添付受信ガイド</a></li>
4531     -<li><a class="reference internal" href="#id5" id="id8">詳細アップロードのパラメーター</a></li>
4532     -</ul>
4533     -</div>
4534     -<div class="section" id="id3">
4535     -<h1><a class="toc-backref" href="#id6">簡易版 添付送信ガイド</a></h1>
4536     -<p>はじめに、<a class="reference external" href="https://dl.example.com/">https://dl.example.com/</a> をブラウザで開き、ユーザ名とパスワードで認証を行います。</p>
4537     -<p>このページになります。:</p>
4538     -<img alt="t-step-1.png" src="t-step-1.png" />
4539     -<ol class="arabic simple">
4540     -<li>&quot;ファイルのアップロード&quot; ( &quot;ブラウズ&quot; または &quot;参照...&quot; と書かれている部分) の下のボタンをクリックします。図に書かれているように、送りたいファイルを選択します。</li>
4541     -<li>&quot;アップロード&quot; をクリックして、図のようにファイルがアップロードが終わるまで待ちます。:</li>
4542     -</ol>
4543     -<img alt="t-step-2.png" src="t-step-2.png" />
4544     -<ol class="arabic simple" start="3">
4545     -<li>&quot;電子メールで送る&quot; をクリックして、今アップロードしたファイルをダウンロードするためのリンクが入ったEメールを特定の人にメールを送ります。</li>
4546     -</ol>
4547     -<p>標準設定では、受け手側は、ファイルが自動的に消される前の1週間以内にファイルのダウンロードを行う必要があります。この動作については、アップロードする前にパラメータを変更することができます。</p>
4548     -<p>このページの一番下の &quot;有効なチケット&quot; ボタンをクリックすることで、アップロードしたファイルリストを見ることができ、それを管理することができます。</p>
4549     -</div>
4550     -<div class="section" id="id4">
4551     -<h1><a class="toc-backref" href="#id7">簡易版 添付受信ガイド</a></h1>
4552     -<p>最初に、 <a class="reference external" href="https://dl.example.com/">https://dl.example.com/</a> をブラウザで開き、ユーザ名とパスワードで認証を行います。</p>
4553     -<p>このページが見えるはずです :</p>
4554     -<img alt="g-step-1.png" src="g-step-1.png" />
4555     -<ol class="arabic simple">
4556     -<li>このページの一番下の &quot;新規のグラント&quot; のリンクをクリックすると新しいグラントを作ることができます。:</li>
4557     -</ol>
4558     -<img alt="g-step-2.png" src="g-step-2.png" />
4559     -<ol class="arabic simple" start="2">
4560     -<li><em>あなた自身の</em> Eメールアドレスを入力してください。</li>
4561     -<li>&quot;作成&quot; をクリックすると、アップロードのグラントが生成されます。:</li>
4562     -</ol>
4563     -<img alt="g-step-3.png" src="g-step-3.png" />
4564     -<ol class="arabic simple" start="4">
4565     -<li>&quot;電子メールで送る&quot; をクリックすると、特定の人がファイルをあなたに送るのを許可するリンクが入ったEメールをその人に送ります。</li>
4566     -</ol>
4567     -<p>受け取った人は、メールのリンクに先に書かれている操作に従う必要があります。受け取った人がファイルをサーバにアップロードした後、あなたに別なリンクが入ったメールが自動的に送られます。</p>
4568     -</div>
4569     -<div class="section" id="id5">
4570     -<h1><a class="toc-backref" href="#id8">詳細アップロードのパラメーター</a></h1>
4571     -<p>&quot;詳細&quot; のパメラーターで、ファイルをアップロードする前に、ダウンロードとその消去の実行がどのようにおこなうかを設定することができます</p>
4572     -<img alt="t-advanced.png" src="t-advanced.png" />
4573     -<ul class="simple">
4574     -<li><em>ファイルを自動的に削除したくない場合</em> &quot;永続のチケット&quot; のチェックボックスにチェックをいれてください。 そのファイルは手動で削除するまでいつでも有効となります。</li>
4575     -<li><em>毎回ダウンロードされる毎に通知をうけとりたい場合</em> &quot;電子メールで通知されます&quot; にあなたのEメールアドレス入力することで受け取ることができます。ファイルのダウンロード、またはサーバからの削除が起きた時ごとに受け取ることができます。あなたのメールが届いているかどうかの追加の確認が必要な場合は、これは有効な機能です。</li>
4576     -</ul>
4577     -<p>全体で以下の日で公開満了します:</p>
4578     -<blockquote>
4579     -サーバにファイルを保持する最大日数を入力します。この期間が過ぎると、
4580     -ファイルがダウンロードされていても、されていなくても、そのファイルはサーバ
4581     -から削除されます。</blockquote>
4582     -<p>最終ダウンロードから以下の日で公開満了になります:</p>
4583     -<blockquote>
4584     -<p>ダウンロードした後、サーバでアップロードされたファイルを保持する時間を入力してください。
4585     -別なダウンロード操作があればチケットを消すまでの時間が延びます。この期間を何も操作なく超えると、
4586     -ファイルはサーバから削除されます。</p>
4587     -<p>この機能は、長い期間(何日とか、何週間とか)で使う時に使うことができ、使われるまで
4588     -チケットを &quot;有効&quot; にすることができ、その後で自動的に削除されます。</p>
4589     -<p>短い期間(24時間以内など)で使うときは、ダウンロードされたすぐに、チケットを削除し、
4590     -ファイルを一度以上ダウンロードするための予備時間となります。</p>
4591     -</blockquote>
4592     -<p>以下の回数のダウンロードで公開終了となります:</p>
4593     -<blockquote>
4594     -アップロードされたファイルのダウンロードされる全体の回数を入力してください。
4595     -この回数になると、ファイルは、サーバから削除されます。
4596     -1人の人から1度ダウンロードされたかどうかを確認するには、便利です。</blockquote>
4597     -<p>これらのパラメータの1つで公開解除となると、ファイルは削除されます。いくつかの
4598     -パラメターを &quot;0&quot; にすると、条件は満たさなくなります。</p>
4599     -</div>
4600     -</div>
4601     -</body>
4602     -</html>
4603     diff -Nur dl-0.18.1/htdocs/static/guide/nl_NL/index.html dl-master/htdocs/static/guide/nl_NL/index.html
4604     --- dl-0.18.1/htdocs/static/guide/nl_NL/index.html 2017-09-06 12:09:38.000000000 -0400
4605     +++ dl-master/htdocs/static/guide/nl_NL/index.html 1969-12-31 19:00:00.000000000 -0500
4606     @@ -1,474 +0,0 @@
4607     -<?xml version="1.0" encoding="utf-8" ?>
4608     -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4609     -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl_NL" lang="nl_NL">
4610     -<head>
4611     -<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
4612     -<meta name="generator" content="Docutils 0.13.1: http://docutils.sourceforge.net/" />
4613     -<title>Download ticket service</title>
4614     -<style type="text/css">
4615     -
4616     -/*
4617     -:Author: David Goodger (goodger@python.org)
4618     -:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
4619     -:Copyright: This stylesheet has been placed in the public domain.
4620     -
4621     -Default cascading style sheet for the HTML output of Docutils.
4622     -
4623     -See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
4624     -customize this style sheet.
4625     -*/
4626     -
4627     -/* used to remove borders from tables and images */
4628     -.borderless, table.borderless td, table.borderless th {
4629     - border: 0 }
4630     -
4631     -table.borderless td, table.borderless th {
4632     - /* Override padding for "table.docutils td" with "! important".
4633     - The right padding separates the table cells. */
4634     - padding: 0 0.5em 0 0 ! important }
4635     -
4636     -.first {
4637     - /* Override more specific margin styles with "! important". */
4638     - margin-top: 0 ! important }
4639     -
4640     -.last, .with-subtitle {
4641     - margin-bottom: 0 ! important }
4642     -
4643     -.hidden {
4644     - display: none }
4645     -
4646     -.subscript {
4647     - vertical-align: sub;
4648     - font-size: smaller }
4649     -
4650     -.superscript {
4651     - vertical-align: super;
4652     - font-size: smaller }
4653     -
4654     -a.toc-backref {
4655     - text-decoration: none ;
4656     - color: black }
4657     -
4658     -blockquote.epigraph {
4659     - margin: 2em 5em ; }
4660     -
4661     -dl.docutils dd {
4662     - margin-bottom: 0.5em }
4663     -
4664     -object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
4665     - overflow: hidden;
4666     -}
4667     -
4668     -/* Uncomment (and remove this text!) to get bold-faced definition list terms
4669     -dl.docutils dt {
4670     - font-weight: bold }
4671     -*/
4672     -
4673     -div.abstract {
4674     - margin: 2em 5em }
4675     -
4676     -div.abstract p.topic-title {
4677     - font-weight: bold ;
4678     - text-align: center }
4679     -
4680     -div.admonition, div.attention, div.caution, div.danger, div.error,
4681     -div.hint, div.important, div.note, div.tip, div.warning {
4682     - margin: 2em ;
4683     - border: medium outset ;
4684     - padding: 1em }
4685     -
4686     -div.admonition p.admonition-title, div.hint p.admonition-title,
4687     -div.important p.admonition-title, div.note p.admonition-title,
4688     -div.tip p.admonition-title {
4689     - font-weight: bold ;
4690     - font-family: sans-serif }
4691     -
4692     -div.attention p.admonition-title, div.caution p.admonition-title,
4693     -div.danger p.admonition-title, div.error p.admonition-title,
4694     -div.warning p.admonition-title, .code .error {
4695     - color: red ;
4696     - font-weight: bold ;
4697     - font-family: sans-serif }
4698     -
4699     -/* Uncomment (and remove this text!) to get reduced vertical space in
4700     - compound paragraphs.
4701     -div.compound .compound-first, div.compound .compound-middle {
4702     - margin-bottom: 0.5em }
4703     -
4704     -div.compound .compound-last, div.compound .compound-middle {
4705     - margin-top: 0.5em }
4706     -*/
4707     -
4708     -div.dedication {
4709     - margin: 2em 5em ;
4710     - text-align: center ;
4711     - font-style: italic }
4712     -
4713     -div.dedication p.topic-title {
4714     - font-weight: bold ;
4715     - font-style: normal }
4716     -
4717     -div.figure {
4718     - margin-left: 2em ;
4719     - margin-right: 2em }
4720     -
4721     -div.footer, div.header {
4722     - clear: both;
4723     - font-size: smaller }
4724     -
4725     -div.line-block {
4726     - display: block ;
4727     - margin-top: 1em ;
4728     - margin-bottom: 1em }
4729     -
4730     -div.line-block div.line-block {
4731     - margin-top: 0 ;
4732     - margin-bottom: 0 ;
4733     - margin-left: 1.5em }
4734     -
4735     -div.sidebar {
4736     - margin: 0 0 0.5em 1em ;
4737     - border: medium outset ;
4738     - padding: 1em ;
4739     - background-color: #ffffee ;
4740     - width: 40% ;
4741     - float: right ;
4742     - clear: right }
4743     -
4744     -div.sidebar p.rubric {
4745     - font-family: sans-serif ;
4746     - font-size: medium }
4747     -
4748     -div.system-messages {
4749     - margin: 5em }
4750     -
4751     -div.system-messages h1 {
4752     - color: red }
4753     -
4754     -div.system-message {
4755     - border: medium outset ;
4756     - padding: 1em }
4757     -
4758     -div.system-message p.system-message-title {
4759     - color: red ;
4760     - font-weight: bold }
4761     -
4762     -div.topic {
4763     - margin: 2em }
4764     -
4765     -h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
4766     -h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
4767     - margin-top: 0.4em }
4768     -
4769     -h1.title {
4770     - text-align: center }
4771     -
4772     -h2.subtitle {
4773     - text-align: center }
4774     -
4775     -hr.docutils {
4776     - width: 75% }
4777     -
4778     -img.align-left, .figure.align-left, object.align-left, table.align-left {
4779     - clear: left ;
4780     - float: left ;
4781     - margin-right: 1em }
4782     -
4783     -img.align-right, .figure.align-right, object.align-right, table.align-right {
4784     - clear: right ;
4785     - float: right ;
4786     - margin-left: 1em }
4787     -
4788     -img.align-center, .figure.align-center, object.align-center {
4789     - display: block;
4790     - margin-left: auto;
4791     - margin-right: auto;
4792     -}
4793     -
4794     -table.align-center {
4795     - margin-left: auto;
4796     - margin-right: auto;
4797     -}
4798     -
4799     -.align-left {
4800     - text-align: left }
4801     -
4802     -.align-center {
4803     - clear: both ;
4804     - text-align: center }
4805     -
4806     -.align-right {
4807     - text-align: right }
4808     -
4809     -/* reset inner alignment in figures */
4810     -div.align-right {
4811     - text-align: inherit }
4812     -
4813     -/* div.align-center * { */
4814     -/* text-align: left } */
4815     -
4816     -.align-top {
4817     - vertical-align: top }
4818     -
4819     -.align-middle {
4820     - vertical-align: middle }
4821     -
4822     -.align-bottom {
4823     - vertical-align: bottom }
4824     -
4825     -ol.simple, ul.simple {
4826     - margin-bottom: 1em }
4827     -
4828     -ol.arabic {
4829     - list-style: decimal }
4830     -
4831     -ol.loweralpha {
4832     - list-style: lower-alpha }
4833     -
4834     -ol.upperalpha {
4835     - list-style: upper-alpha }
4836     -
4837     -ol.lowerroman {
4838     - list-style: lower-roman }
4839     -
4840     -ol.upperroman {
4841     - list-style: upper-roman }
4842     -
4843     -p.attribution {
4844     - text-align: right ;
4845     - margin-left: 50% }
4846     -
4847     -p.caption {
4848     - font-style: italic }
4849     -
4850     -p.credits {
4851     - font-style: italic ;
4852     - font-size: smaller }
4853     -
4854     -p.label {
4855     - white-space: nowrap }
4856     -
4857     -p.rubric {
4858     - font-weight: bold ;
4859     - font-size: larger ;
4860     - color: maroon ;
4861     - text-align: center }
4862     -
4863     -p.sidebar-title {
4864     - font-family: sans-serif ;
4865     - font-weight: bold ;
4866     - font-size: larger }
4867     -
4868     -p.sidebar-subtitle {
4869     - font-family: sans-serif ;
4870     - font-weight: bold }
4871     -
4872     -p.topic-title {
4873     - font-weight: bold }
4874     -
4875     -pre.address {
4876     - margin-bottom: 0 ;
4877     - margin-top: 0 ;
4878     - font: inherit }
4879     -
4880     -pre.literal-block, pre.doctest-block, pre.math, pre.code {
4881     - margin-left: 2em ;
4882     - margin-right: 2em }
4883     -
4884     -pre.code .ln { color: grey; } /* line numbers */
4885     -pre.code, code { background-color: #eeeeee }
4886     -pre.code .comment, code .comment { color: #5C6576 }
4887     -pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
4888     -pre.code .literal.string, code .literal.string { color: #0C5404 }
4889     -pre.code .name.builtin, code .name.builtin { color: #352B84 }
4890     -pre.code .deleted, code .deleted { background-color: #DEB0A1}
4891     -pre.code .inserted, code .inserted { background-color: #A3D289}
4892     -
4893     -span.classifier {
4894     - font-family: sans-serif ;
4895     - font-style: oblique }
4896     -
4897     -span.classifier-delimiter {
4898     - font-family: sans-serif ;
4899     - font-weight: bold }
4900     -
4901     -span.interpreted {
4902     - font-family: sans-serif }
4903     -
4904     -span.option {
4905     - white-space: nowrap }
4906     -
4907     -span.pre {
4908     - white-space: pre }
4909     -
4910     -span.problematic {
4911     - color: red }
4912     -
4913     -span.section-subtitle {
4914     - /* font-size relative to parent (h1..h6 element) */
4915     - font-size: 80% }
4916     -
4917     -table.citation {
4918     - border-left: solid 1px gray;
4919     - margin-left: 1px }
4920     -
4921     -table.docinfo {
4922     - margin: 2em 4em }
4923     -
4924     -table.docutils {
4925     - margin-top: 0.5em ;
4926     - margin-bottom: 0.5em }
4927     -
4928     -table.footnote {
4929     - border-left: solid 1px black;
4930     - margin-left: 1px }
4931     -
4932     -table.docutils td, table.docutils th,
4933     -table.docinfo td, table.docinfo th {
4934     - padding-left: 0.5em ;
4935     - padding-right: 0.5em ;
4936     - vertical-align: top }
4937     -
4938     -table.docutils th.field-name, table.docinfo th.docinfo-name {
4939     - font-weight: bold ;
4940     - text-align: left ;
4941     - white-space: nowrap ;
4942     - padding-left: 0 }
4943     -
4944     -/* "booktabs" style (no vertical lines) */
4945     -table.docutils.booktabs {
4946     - border: 0px;
4947     - border-top: 2px solid;
4948     - border-bottom: 2px solid;
4949     - border-collapse: collapse;
4950     -}
4951     -table.docutils.booktabs * {
4952     - border: 0px;
4953     -}
4954     -table.docutils.booktabs th {
4955     - border-bottom: thin solid;
4956     - text-align: left;
4957     -}
4958     -
4959     -h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
4960     -h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
4961     - font-size: 100% }
4962     -
4963     -ul.auto-toc {
4964     - list-style-type: none }
4965     -
4966     -</style>
4967     -</head>
4968     -<body>
4969     -<div class="document" id="download-ticket-service">
4970     -<h1 class="title">Download ticket service</h1>
4971     -
4972     -<div class="contents topic" id="inhoud">
4973     -<p class="topic-title first">Inhoud</p>
4974     -<ul class="simple">
4975     -<li><a class="reference internal" href="#korte-stap-voor-stap-handleiding-om-attachments-te-versturen" id="id1">Korte stap voor stap handleiding om attachments te versturen</a></li>
4976     -<li><a class="reference internal" href="#korte-stap-voor-stap-handleiding-om-attachments-te-ontvangen" id="id2">Korte stap voor stap handleiding om attachments te ontvangen</a></li>
4977     -<li><a class="reference internal" href="#geavanceerde-upload-parameters" id="id3">Geavanceerde upload parameters</a></li>
4978     -</ul>
4979     -</div>
4980     -<div class="section" id="korte-stap-voor-stap-handleiding-om-attachments-te-versturen">
4981     -<h1><a class="toc-backref" href="#id1">Korte stap voor stap handleiding om attachments te versturen</a></h1>
4982     -<p>Ga alleereerst naar <a class="reference external" href="https://dl.example.com/">https://dl.example.com/</a> en log in met uw gebruikersnaam en
4983     -wachtwoord.</p>
4984     -<p>U ziet nu onderstaande pagina:</p>
4985     -<img alt="t-step-1.png" src="t-step-1.png" />
4986     -<ol class="arabic simple">
4987     -<li>Klik op de knop &quot;Bestand kiezen&quot; (of &quot;Browse&quot;) onder &quot;Een bestand uploaden&quot;
4988     -zoals aangegeven op bovenstaand figuur. Selecteer vervolgens het bestand
4989     -dat u wilt versturen.</li>
4990     -<li>Klik op &quot;Bestand uploaden&quot; en wacht totdat het bestand is geüpload. Als het
4991     -uploaden is gelukt verschijnt de volgende figuur:</li>
4992     -</ol>
4993     -<img alt="t-step-2.png" src="t-step-2.png" />
4994     -<ol class="arabic simple" start="3">
4995     -<li>Klik &quot;Verstuurd per e-mail&quot; om de e-mail naar de gewenste persoon te
4996     -versturen. Deze mail bevat de link naar het bestand dat u zojuist heeft
4997     -geüpload.</li>
4998     -</ol>
4999     -<p>Standaard heeft de ontvanger één week de tijd om het bestand te downloaden
5000     -voordat dit bestand automatisch verwijderd wordt. U kunt dit gedrag wijzigen
5001     -door een aantal parameters in te stellen voordat u het bestand upload.</p>
5002     -<p>U kunt een lijst van bestanden die u heeft geüpload zien en wijzigen door op
5003     -&quot;Actieve tickets&quot; onderaan de pagina te klikken.</p>
5004     -</div>
5005     -<div class="section" id="korte-stap-voor-stap-handleiding-om-attachments-te-ontvangen">
5006     -<h1><a class="toc-backref" href="#id2">Korte stap voor stap handleiding om attachments te ontvangen</a></h1>
5007     -<p>Ga alleereerst naar <a class="reference external" href="https://dl.example.com/">https://dl.example.com/</a> en log in met uw gebruikersnaam en
5008     -wachtwoord.</p>
5009     -<p>U ziet nu onderstaande pagina:</p>
5010     -<img alt="g-step-1.png" src="g-step-1.png" />
5011     -<ol class="arabic simple">
5012     -<li>Klik op de &quot;Nieuwe toekenning&quot; link onderaan de pagina om een nieuwe
5013     -toekenning te maken.</li>
5014     -</ol>
5015     -<img alt="g-step-2.png" src="g-step-2.png" />
5016     -<ol class="arabic simple" start="2">
5017     -<li>Vul uw eigen e-mail adres in.</li>
5018     -<li>Klik op &quot;Maak&quot; om een upload toekenning te maken.</li>
5019     -</ol>
5020     -<img alt="g-step-3.png" src="g-step-3.png" />
5021     -<ol class="arabic simple" start="4">
5022     -<li>Klik op &quot;Verstuurd per e-mail&quot; om een e-mail naar iemand te versturen. Deze
5023     -e-mail bevat een link die het de ontvanger mogelijk maakt om u een groot
5024     -bestand terug te sturen.</li>
5025     -</ol>
5026     -<p>Uw ontvanger hoeft alleen maar de instructies te volgen zoals aangegeven in de
5027     -mail. Als de ontvanger van de link zijn bestand heeft geüpload naar de server
5028     -ontvangt u een notificatie e-mail met daarin een link naar het geüploade
5029     -bestand.</p>
5030     -</div>
5031     -<div class="section" id="geavanceerde-upload-parameters">
5032     -<h1><a class="toc-backref" href="#id3">Geavanceerde upload parameters</a></h1>
5033     -<p>Voordat u een bestand upload kunt u met geavancceerde parameters instellen hoe
5034     -vaak het bestand gedownload kan worden en of en wanneer het bestand automatisch
5035     -wordt verwijderd.</p>
5036     -<img alt="t-advanced.png" src="t-advanced.png" />
5037     -<ul class="simple">
5038     -<li><em>Als u niet wilt dat uw bestand ooit automatisch wordt verwijderd</em> zet dan
5039     -een vinkje bij &quot;Ticket permanent maken&quot;. Uw bestand zal altijd beschikbaar
5040     -blijven totdat u het bestand zelf handmatig verwijderd.</li>
5041     -<li><em>Als u iedere keer als iemand uw bestand download een melding wilt ontvangen</em>
5042     -vul dan uw e-mail adres in bij &quot;Ontvang een e-mail notificatie nadat het
5043     -bestand is gedownload&quot;. U ontvangt nu iedere keer een melding als uw bestand
5044     -succesvol is gedownload of wanneer het automatisch van de server is
5045     -verwijderd. Deze functie is erg handig als u er zeker van wilt zijn dat men
5046     -gereageerd heeft op de door u verstuurde e-mail.</li>
5047     -</ul>
5048     -<p>Vervalt na # dagen:</p>
5049     -<blockquote>
5050     -Vul hier het maximaal aantal dagen in dat een geüpload bestand op de server
5051     -blijft staan. Na deze periode wordt het bestand automatisch van de server
5052     -verwijderd. Het maakt hierbij niet uit of het bestand wel of niet
5053     -gedownload was tijdens het ingestelde tijdsinterval.</blockquote>
5054     -<p>Vervalt na # dagen na de laatste download:</p>
5055     -<blockquote>
5056     -<p>Vul hier het maximaal aantal dagen in dat een geüpload bestand op de server
5057     -blijft staan nadat het gedownload is. Een volgende download zorgt ervoor
5058     -dat de teller weer wordt gereset. Nadat het ingestelde aantal dagen is
5059     -verstreken zonder dat er een download van het bestand heeft plaatsgevonden,
5060     -zal het bestand automatisch van de server verwijderd worden.</p>
5061     -<p>Deze functie zorgt ervoor dat populaire bestanden bewaard blijven maar
5062     -nadat deze is gezakt automatisch verwijderd worden. Het is aan
5063     -te raden om het tijdsinterval in te stellen op meerdere dagen of weken.</p>
5064     -<p>Zorg er altijd voor dat u het tijdsinterval zodanig instelt dat een
5065     -ontvanger van uw e-mail het bestand indien nodig twee keer kan downloaden.</p>
5066     -</blockquote>
5067     -<p>Vervalt na # downloads:</p>
5068     -<blockquote>
5069     -Vul het aantal keer in dat het geüploade bestand gedownload kan worden. Als
5070     -het ingestelde aantal downloads bereikt is zal het bestand automatisch van
5071     -de server verwijderd worden. Deze functie is handig als u er bijvoorbeeld
5072     -zeker van wilt zijn dat uw bestand één keer gedownload wordt door één
5073     -persoon.</blockquote>
5074     -<p>Als één van bovenstaande ingestelde parameters verloopt dan zal het bestand
5075     -verwijderd worden. Als u &quot;0&quot; invult bij een parameter dan zal deze
5076     -uitgeschakeld worden.</p>
5077     -</div>
5078     -</div>
5079     -</body>
5080     -</html>
5081     diff -Nur dl-0.18.1/htdocs/static/guide/zh_CN/index.html dl-master/htdocs/static/guide/zh_CN/index.html
5082     --- dl-0.18.1/htdocs/static/guide/zh_CN/index.html 2017-09-06 12:09:38.000000000 -0400
5083     +++ dl-master/htdocs/static/guide/zh_CN/index.html 1969-12-31 19:00:00.000000000 -0500
5084     @@ -1,434 +0,0 @@
5085     -<?xml version="1.0" encoding="utf-8" ?>
5086     -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5087     -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh_CN" lang="zh_CN">
5088     -<head>
5089     -<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5090     -<meta name="generator" content="Docutils 0.13.1: http://docutils.sourceforge.net/" />
5091     -<title>鉴权下载服务系统</title>
5092     -<style type="text/css">
5093     -
5094     -/*
5095     -:Author: David Goodger (goodger@python.org)
5096     -:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
5097     -:Copyright: This stylesheet has been placed in the public domain.
5098     -
5099     -Default cascading style sheet for the HTML output of Docutils.
5100     -
5101     -See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
5102     -customize this style sheet.
5103     -*/
5104     -
5105     -/* used to remove borders from tables and images */
5106     -.borderless, table.borderless td, table.borderless th {
5107     - border: 0 }
5108     -
5109     -table.borderless td, table.borderless th {
5110     - /* Override padding for "table.docutils td" with "! important".
5111     - The right padding separates the table cells. */
5112     - padding: 0 0.5em 0 0 ! important }
5113     -
5114     -.first {
5115     - /* Override more specific margin styles with "! important". */
5116     - margin-top: 0 ! important }
5117     -
5118     -.last, .with-subtitle {
5119     - margin-bottom: 0 ! important }
5120     -
5121     -.hidden {
5122     - display: none }
5123     -
5124     -.subscript {
5125     - vertical-align: sub;
5126     - font-size: smaller }
5127     -
5128     -.superscript {
5129     - vertical-align: super;
5130     - font-size: smaller }
5131     -
5132     -a.toc-backref {
5133     - text-decoration: none ;
5134     - color: black }
5135     -
5136     -blockquote.epigraph {
5137     - margin: 2em 5em ; }
5138     -
5139     -dl.docutils dd {
5140     - margin-bottom: 0.5em }
5141     -
5142     -object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
5143     - overflow: hidden;
5144     -}
5145     -
5146     -/* Uncomment (and remove this text!) to get bold-faced definition list terms
5147     -dl.docutils dt {
5148     - font-weight: bold }
5149     -*/
5150     -
5151     -div.abstract {
5152     - margin: 2em 5em }
5153     -
5154     -div.abstract p.topic-title {
5155     - font-weight: bold ;
5156     - text-align: center }
5157     -
5158     -div.admonition, div.attention, div.caution, div.danger, div.error,
5159     -div.hint, div.important, div.note, div.tip, div.warning {
5160     - margin: 2em ;
5161     - border: medium outset ;
5162     - padding: 1em }
5163     -
5164     -div.admonition p.admonition-title, div.hint p.admonition-title,
5165     -div.important p.admonition-title, div.note p.admonition-title,
5166     -div.tip p.admonition-title {
5167     - font-weight: bold ;
5168     - font-family: sans-serif }
5169     -
5170     -div.attention p.admonition-title, div.caution p.admonition-title,
5171     -div.danger p.admonition-title, div.error p.admonition-title,
5172     -div.warning p.admonition-title, .code .error {
5173     - color: red ;
5174     - font-weight: bold ;
5175     - font-family: sans-serif }
5176     -
5177     -/* Uncomment (and remove this text!) to get reduced vertical space in
5178     - compound paragraphs.
5179     -div.compound .compound-first, div.compound .compound-middle {
5180     - margin-bottom: 0.5em }
5181     -
5182     -div.compound .compound-last, div.compound .compound-middle {
5183     - margin-top: 0.5em }
5184     -*/
5185     -
5186     -div.dedication {
5187     - margin: 2em 5em ;
5188     - text-align: center ;
5189     - font-style: italic }
5190     -
5191     -div.dedication p.topic-title {
5192     - font-weight: bold ;
5193     - font-style: normal }
5194     -
5195     -div.figure {
5196     - margin-left: 2em ;
5197     - margin-right: 2em }
5198     -
5199     -div.footer, div.header {
5200     - clear: both;
5201     - font-size: smaller }
5202     -
5203     -div.line-block {
5204     - display: block ;
5205     - margin-top: 1em ;
5206     - margin-bottom: 1em }
5207     -
5208     -div.line-block div.line-block {
5209     - margin-top: 0 ;
5210     - margin-bottom: 0 ;
5211     - margin-left: 1.5em }
5212     -
5213     -div.sidebar {
5214     - margin: 0 0 0.5em 1em ;
5215     - border: medium outset ;
5216     - padding: 1em ;
5217     - background-color: #ffffee ;
5218     - width: 40% ;
5219     - float: right ;
5220     - clear: right }
5221     -
5222     -div.sidebar p.rubric {
5223     - font-family: sans-serif ;
5224     - font-size: medium }
5225     -
5226     -div.system-messages {
5227     - margin: 5em }
5228     -
5229     -div.system-messages h1 {
5230     - color: red }
5231     -
5232     -div.system-message {
5233     - border: medium outset ;
5234     - padding: 1em }
5235     -
5236     -div.system-message p.system-message-title {
5237     - color: red ;
5238     - font-weight: bold }
5239     -
5240     -div.topic {
5241     - margin: 2em }
5242     -
5243     -h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
5244     -h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
5245     - margin-top: 0.4em }
5246     -
5247     -h1.title {
5248     - text-align: center }
5249     -
5250     -h2.subtitle {
5251     - text-align: center }
5252     -
5253     -hr.docutils {
5254     - width: 75% }
5255     -
5256     -img.align-left, .figure.align-left, object.align-left, table.align-left {
5257     - clear: left ;
5258     - float: left ;
5259     - margin-right: 1em }
5260     -
5261     -img.align-right, .figure.align-right, object.align-right, table.align-right {
5262     - clear: right ;
5263     - float: right ;
5264     - margin-left: 1em }
5265     -
5266     -img.align-center, .figure.align-center, object.align-center {
5267     - display: block;
5268     - margin-left: auto;
5269     - margin-right: auto;
5270     -}
5271     -
5272     -table.align-center {
5273     - margin-left: auto;
5274     - margin-right: auto;
5275     -}
5276     -
5277     -.align-left {
5278     - text-align: left }
5279     -
5280     -.align-center {
5281     - clear: both ;
5282     - text-align: center }
5283     -
5284     -.align-right {
5285     - text-align: right }
5286     -
5287     -/* reset inner alignment in figures */
5288     -div.align-right {
5289     - text-align: inherit }
5290     -
5291     -/* div.align-center * { */
5292     -/* text-align: left } */
5293     -
5294     -.align-top {
5295     - vertical-align: top }
5296     -
5297     -.align-middle {
5298     - vertical-align: middle }
5299     -
5300     -.align-bottom {
5301     - vertical-align: bottom }
5302     -
5303     -ol.simple, ul.simple {
5304     - margin-bottom: 1em }
5305     -
5306     -ol.arabic {
5307     - list-style: decimal }
5308     -
5309     -ol.loweralpha {
5310     - list-style: lower-alpha }
5311     -
5312     -ol.upperalpha {
5313     - list-style: upper-alpha }
5314     -
5315     -ol.lowerroman {
5316     - list-style: lower-roman }
5317     -
5318     -ol.upperroman {
5319     - list-style: upper-roman }
5320     -
5321     -p.attribution {
5322     - text-align: right ;
5323     - margin-left: 50% }
5324     -
5325     -p.caption {
5326     - font-style: italic }
5327     -
5328     -p.credits {
5329     - font-style: italic ;
5330     - font-size: smaller }
5331     -
5332     -p.label {
5333     - white-space: nowrap }
5334     -
5335     -p.rubric {
5336     - font-weight: bold ;
5337     - font-size: larger ;
5338     - color: maroon ;
5339     - text-align: center }
5340     -
5341     -p.sidebar-title {
5342     - font-family: sans-serif ;
5343     - font-weight: bold ;
5344     - font-size: larger }
5345     -
5346     -p.sidebar-subtitle {
5347     - font-family: sans-serif ;
5348     - font-weight: bold }
5349     -
5350     -p.topic-title {
5351     - font-weight: bold }
5352     -
5353     -pre.address {
5354     - margin-bottom: 0 ;
5355     - margin-top: 0 ;
5356     - font: inherit }
5357     -
5358     -pre.literal-block, pre.doctest-block, pre.math, pre.code {
5359     - margin-left: 2em ;
5360     - margin-right: 2em }
5361     -
5362     -pre.code .ln { color: grey; } /* line numbers */
5363     -pre.code, code { background-color: #eeeeee }
5364     -pre.code .comment, code .comment { color: #5C6576 }
5365     -pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
5366     -pre.code .literal.string, code .literal.string { color: #0C5404 }
5367     -pre.code .name.builtin, code .name.builtin { color: #352B84 }
5368     -pre.code .deleted, code .deleted { background-color: #DEB0A1}
5369     -pre.code .inserted, code .inserted { background-color: #A3D289}
5370     -
5371     -span.classifier {
5372     - font-family: sans-serif ;
5373     - font-style: oblique }
5374     -
5375     -span.classifier-delimiter {
5376     - font-family: sans-serif ;
5377     - font-weight: bold }
5378     -
5379     -span.interpreted {
5380     - font-family: sans-serif }
5381     -
5382     -span.option {
5383     - white-space: nowrap }
5384     -
5385     -span.pre {
5386     - white-space: pre }
5387     -
5388     -span.problematic {
5389     - color: red }
5390     -
5391     -span.section-subtitle {
5392     - /* font-size relative to parent (h1..h6 element) */
5393     - font-size: 80% }
5394     -
5395     -table.citation {
5396     - border-left: solid 1px gray;
5397     - margin-left: 1px }
5398     -
5399     -table.docinfo {
5400     - margin: 2em 4em }
5401     -
5402     -table.docutils {
5403     - margin-top: 0.5em ;
5404     - margin-bottom: 0.5em }
5405     -
5406     -table.footnote {
5407     - border-left: solid 1px black;
5408     - margin-left: 1px }
5409     -
5410     -table.docutils td, table.docutils th,
5411     -table.docinfo td, table.docinfo th {
5412     - padding-left: 0.5em ;
5413     - padding-right: 0.5em ;
5414     - vertical-align: top }
5415     -
5416     -table.docutils th.field-name, table.docinfo th.docinfo-name {
5417     - font-weight: bold ;
5418     - text-align: left ;
5419     - white-space: nowrap ;
5420     - padding-left: 0 }
5421     -
5422     -/* "booktabs" style (no vertical lines) */
5423     -table.docutils.booktabs {
5424     - border: 0px;
5425     - border-top: 2px solid;
5426     - border-bottom: 2px solid;
5427     - border-collapse: collapse;
5428     -}
5429     -table.docutils.booktabs * {
5430     - border: 0px;
5431     -}
5432     -table.docutils.booktabs th {
5433     - border-bottom: thin solid;
5434     - text-align: left;
5435     -}
5436     -
5437     -h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
5438     -h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
5439     - font-size: 100% }
5440     -
5441     -ul.auto-toc {
5442     - list-style-type: none }
5443     -
5444     -</style>
5445     -</head>
5446     -<body>
5447     -<div class="document" id="id1">
5448     -<h1 class="title">鉴权下载服务系统</h1>
5449     -
5450     -<div class="contents topic" id="id2">
5451     -<p class="topic-title first">目录</p>
5452     -<ul class="simple">
5453     -<li><a class="reference internal" href="#id3" id="id6">简明步骤:上传附件</a></li>
5454     -<li><a class="reference internal" href="#id4" id="id7">简明步骤:接收(他人上传)附件</a></li>
5455     -<li><a class="reference internal" href="#id5" id="id8">高级上传参数</a></li>
5456     -</ul>
5457     -</div>
5458     -<div class="section" id="id3">
5459     -<h1><a class="toc-backref" href="#id6">简明步骤:上传附件</a></h1>
5460     -<p>首先,访问 <a class="reference external" href="https://dl.example.com/">https://dl.example.com/</a> 并使用正确的用户名、密码完成登陆认证。</p>
5461     -<p>如果一切正常,你应该可以看到和下图类似的页面:</p>
5462     -<img alt="t-step-1.png" src="t-step-1.png" />
5463     -<ol class="arabic simple">
5464     -<li>如上图框线所示,单击“上传文件”下方的按钮(按钮上一般会显示“选择文件”或者是“浏览”字样),选择需要上传的文件。</li>
5465     -<li>单击“上传”,然后等待,直至文件上传成功,如下图所示:</li>
5466     -</ol>
5467     -<img alt="t-step-2.png" src="t-step-2.png" />
5468     -<ol class="arabic simple" start="3">
5469     -<li>单击“使用电子邮件发送”,可以给对方发送邮件,邮件中会包含你刚刚上传文件的地址。</li>
5470     -</ol>
5471     -<p>默认情况下,文件接收人有一周的时间下载这个文件,超时后,该文件将被自动清除。要变更这一设置,可在上传前设置对应的参数。</p>
5472     -<p>你可通过点击页面底部的“所有提取码”链接来查看、管理的所有上传的文件。</p>
5473     -</div>
5474     -<div class="section" id="id4">
5475     -<h1><a class="toc-backref" href="#id7">简明步骤:接收(他人上传)附件</a></h1>
5476     -<p>首先,访问 <a class="reference external" href="https://dl.example.com/">https://dl.example.com/</a> 并使用正确的用户名、密码完成登陆认证。</p>
5477     -<p>你应该可以看到和下图类似的页面:</p>
5478     -<img alt="g-step-1.png" src="g-step-1.png" />
5479     -<ol class="arabic simple">
5480     -<li>单击页面底部的“新建授权”链接,来新建单次上传文件授权:</li>
5481     -</ol>
5482     -<img alt="g-step-2.png" src="g-step-2.png" />
5483     -<ol class="arabic simple" start="2">
5484     -<li>输入 <em>你的</em> 电子邮件地址。</li>
5485     -<li>单击“创建”,即可生成新的文件上传授权。</li>
5486     -</ol>
5487     -<img alt="g-step-3.png" src="g-step-3.png" />
5488     -<ol class="arabic simple" start="4">
5489     -<li>单击“使用电子邮件发送”,可以向对方发送邮件,邮件中会包含一个链接,使用该链接,对方可以上传任意文件。</li>
5490     -</ol>
5491     -<p>邮件接收者只需要按照链接的指示,完成对应的上传动作,即可上传文件。文件上传到服务器后,你将立刻收到邮件提醒,该邮件中将包含对应已上传文件的文件地址。</p>
5492     -</div>
5493     -<div class="section" id="id5">
5494     -<h1><a class="toc-backref" href="#id8">高级上传参数</a></h1>
5495     -<p>上传文件前,你可通过“高级设置”中的参数定义服务器的文件下载、清除行为:</p>
5496     -<img alt="t-advanced.png" src="t-advanced.png" />
5497     -<ul class="simple">
5498     -<li><em>如果你需要服务器永远不删除一个文件</em> 请勾选“本文件不过期”选项。该文件将永远可用,直到您从服务器上将其手动删除。</li>
5499     -<li><em>如果你希望每次有人下载文件后都收到通知</em> 可在“通过电子邮件接收通知”文本框内输入你的电子邮件地址。这样一来,你将在每次该文件被下载、或是从服务器被删除后收到邮件通知。该功能在您需要确认电子邮箱是否正常工作时十分有用。</li>
5500     -</ul>
5501     -<p>在指定天数后过期:</p>
5502     -<blockquote>
5503     -在“在多少天内过期?”文本框处输入数字,系统将以该数字作为保留该文件的最长期限。超过该期限后,该文件无论是否被下载过,都将被删除。</blockquote>
5504     -<p>从最后一次下载算起,在指定天数后过期:</p>
5505     -<blockquote>
5506     -<p>在“从最后一次下载算起,几天后过期?”文本框中输入数字,在文件被下载后,系统将以该数字作为保留该文件的最长期限。如果期间有他人再次下载文件,则该文件的保留期限将按照对应有效天数被适当延长。如果保留期限内内无人再下载此文件,该文件将被清除。</p>
5507     -<p>该功能在用于长期保存(几天、几周)的文件时,可以让高人气的提取码在被使用时一直保持激活状态,并在无人使用后,被马上删除。</p>
5508     -<p>在用于短期保存(小于一天/24小时)的文件时,该功能可以让文件在下载后立即消失,但同时也给收件人提供了一定缓冲时间,来多次下载文件。</p>
5509     -</blockquote>
5510     -<p>在下载指定次数后过期:</p>
5511     -<blockquote>
5512     -<p>在“下载几次后过期?”文本框中输入数字,系统将以该数字作为对应文件能被下载的最多次数。在文件下载次数达到这个数字后,文件将从服务器上清除。如果您只想让一个人下载该文件,且只下载一次,该功能非常方便。</p>
5513     -<p>这些设置参数是并列的,任何一个参数过期,都会导致文件清除。如果您想禁用这些设置,请在对应参数中输入“0”。</p>
5514     -</blockquote>
5515     -</div>
5516     -</div>
5517     -</body>
5518     -</html>
5519     diff -Nur dl-0.18.1/htdocs/style/default/include/.htaccess dl-master/htdocs/style/default/include/.htaccess
5520     --- dl-0.18.1/htdocs/style/default/include/.htaccess 2017-09-06 12:08:38.000000000 -0400
5521     +++ dl-master/htdocs/style/default/include/.htaccess 2021-03-16 18:59:58.000000000 -0400
5522     @@ -1,4 +1,9 @@
5523     <Limit GET POST>
5524     - Order allow,deny
5525     - Deny from all
5526     + <IfVersion >= 2.4>
5527     + Require all denied
5528     + </IfVersion>
5529     + <IfVersion < 2.4>
5530     + Order allow,deny
5531     + Deny from all
5532     + </IfVersion>
5533     </Limit>
5534     diff -Nur dl-0.18.1/.mailmap dl-master/.mailmap
5535     --- dl-0.18.1/.mailmap 1969-12-31 19:00:00.000000000 -0500
5536     +++ dl-master/.mailmap 2021-03-16 18:59:58.000000000 -0400
5537     @@ -0,0 +1,2 @@
5538     +Yuri D'Elia <wavexx@thregr.org> wavexx <wavexx@thregr.org>
5539     +Yuri D'Elia <wavexx@thregr.org> Yuri D'Elia <yuri.delia@eurac.edu>
5540     diff -Nur dl-0.18.1/NEWS.html dl-master/NEWS.html
5541     --- dl-0.18.1/NEWS.html 2017-09-06 12:09:38.000000000 -0400
5542     +++ dl-master/NEWS.html 1969-12-31 19:00:00.000000000 -0500
5543     @@ -1,707 +0,0 @@
5544     -<?xml version="1.0" encoding="utf-8" ?>
5545     -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5546     -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5547     -<head>
5548     -<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5549     -<meta name="generator" content="Docutils 0.13.1: http://docutils.sourceforge.net/" />
5550     -<title></title>
5551     -<style type="text/css">
5552     -
5553     -/*
5554     -:Author: David Goodger (goodger@python.org)
5555     -:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
5556     -:Copyright: This stylesheet has been placed in the public domain.
5557     -
5558     -Default cascading style sheet for the HTML output of Docutils.
5559     -
5560     -See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
5561     -customize this style sheet.
5562     -*/
5563     -
5564     -/* used to remove borders from tables and images */
5565     -.borderless, table.borderless td, table.borderless th {
5566     - border: 0 }
5567     -
5568     -table.borderless td, table.borderless th {
5569     - /* Override padding for "table.docutils td" with "! important".
5570     - The right padding separates the table cells. */
5571     - padding: 0 0.5em 0 0 ! important }
5572     -
5573     -.first {
5574     - /* Override more specific margin styles with "! important". */
5575     - margin-top: 0 ! important }
5576     -
5577     -.last, .with-subtitle {
5578     - margin-bottom: 0 ! important }
5579     -
5580     -.hidden {
5581     - display: none }
5582     -
5583     -.subscript {
5584     - vertical-align: sub;
5585     - font-size: smaller }
5586     -
5587     -.superscript {
5588     - vertical-align: super;
5589     - font-size: smaller }
5590     -
5591     -a.toc-backref {
5592     - text-decoration: none ;
5593     - color: black }
5594     -
5595     -blockquote.epigraph {
5596     - margin: 2em 5em ; }
5597     -
5598     -dl.docutils dd {
5599     - margin-bottom: 0.5em }
5600     -
5601     -object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
5602     - overflow: hidden;
5603     -}
5604     -
5605     -/* Uncomment (and remove this text!) to get bold-faced definition list terms
5606     -dl.docutils dt {
5607     - font-weight: bold }
5608     -*/
5609     -
5610     -div.abstract {
5611     - margin: 2em 5em }
5612     -
5613     -div.abstract p.topic-title {
5614     - font-weight: bold ;
5615     - text-align: center }
5616     -
5617     -div.admonition, div.attention, div.caution, div.danger, div.error,
5618     -div.hint, div.important, div.note, div.tip, div.warning {
5619     - margin: 2em ;
5620     - border: medium outset ;
5621     - padding: 1em }
5622     -
5623     -div.admonition p.admonition-title, div.hint p.admonition-title,
5624     -div.important p.admonition-title, div.note p.admonition-title,
5625     -div.tip p.admonition-title {
5626     - font-weight: bold ;
5627     - font-family: sans-serif }
5628     -
5629     -div.attention p.admonition-title, div.caution p.admonition-title,
5630     -div.danger p.admonition-title, div.error p.admonition-title,
5631     -div.warning p.admonition-title, .code .error {
5632     - color: red ;
5633     - font-weight: bold ;
5634     - font-family: sans-serif }
5635     -
5636     -/* Uncomment (and remove this text!) to get reduced vertical space in
5637     - compound paragraphs.
5638     -div.compound .compound-first, div.compound .compound-middle {
5639     - margin-bottom: 0.5em }
5640     -
5641     -div.compound .compound-last, div.compound .compound-middle {
5642     - margin-top: 0.5em }
5643     -*/
5644     -
5645     -div.dedication {
5646     - margin: 2em 5em ;
5647     - text-align: center ;
5648     - font-style: italic }
5649     -
5650     -div.dedication p.topic-title {
5651     - font-weight: bold ;
5652     - font-style: normal }
5653     -
5654     -div.figure {
5655     - margin-left: 2em ;
5656     - margin-right: 2em }
5657     -
5658     -div.footer, div.header {
5659     - clear: both;
5660     - font-size: smaller }
5661     -
5662     -div.line-block {
5663     - display: block ;
5664     - margin-top: 1em ;
5665     - margin-bottom: 1em }
5666     -
5667     -div.line-block div.line-block {
5668     - margin-top: 0 ;
5669     - margin-bottom: 0 ;
5670     - margin-left: 1.5em }
5671     -
5672     -div.sidebar {
5673     - margin: 0 0 0.5em 1em ;
5674     - border: medium outset ;
5675     - padding: 1em ;
5676     - background-color: #ffffee ;
5677     - width: 40% ;
5678     - float: right ;
5679     - clear: right }
5680     -
5681     -div.sidebar p.rubric {
5682     - font-family: sans-serif ;
5683     - font-size: medium }
5684     -
5685     -div.system-messages {
5686     - margin: 5em }
5687     -
5688     -div.system-messages h1 {
5689     - color: red }
5690     -
5691     -div.system-message {
5692     - border: medium outset ;
5693     - padding: 1em }
5694     -
5695     -div.system-message p.system-message-title {
5696     - color: red ;
5697     - font-weight: bold }
5698     -
5699     -div.topic {
5700     - margin: 2em }
5701     -
5702     -h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
5703     -h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
5704     - margin-top: 0.4em }
5705     -
5706     -h1.title {
5707     - text-align: center }
5708     -
5709     -h2.subtitle {
5710     - text-align: center }
5711     -
5712     -hr.docutils {
5713     - width: 75% }
5714     -
5715     -img.align-left, .figure.align-left, object.align-left, table.align-left {
5716     - clear: left ;
5717     - float: left ;
5718     - margin-right: 1em }
5719     -
5720     -img.align-right, .figure.align-right, object.align-right, table.align-right {
5721     - clear: right ;
5722     - float: right ;
5723     - margin-left: 1em }
5724     -
5725     -img.align-center, .figure.align-center, object.align-center {
5726     - display: block;
5727     - margin-left: auto;
5728     - margin-right: auto;
5729     -}
5730     -
5731     -table.align-center {
5732     - margin-left: auto;
5733     - margin-right: auto;
5734     -}
5735     -
5736     -.align-left {
5737     - text-align: left }
5738     -
5739     -.align-center {
5740     - clear: both ;
5741     - text-align: center }
5742     -
5743     -.align-right {
5744     - text-align: right }
5745     -
5746     -/* reset inner alignment in figures */
5747     -div.align-right {
5748     - text-align: inherit }
5749     -
5750     -/* div.align-center * { */
5751     -/* text-align: left } */
5752     -
5753     -.align-top {
5754     - vertical-align: top }
5755     -
5756     -.align-middle {
5757     - vertical-align: middle }
5758     -
5759     -.align-bottom {
5760     - vertical-align: bottom }
5761     -
5762     -ol.simple, ul.simple {
5763     - margin-bottom: 1em }
5764     -
5765     -ol.arabic {
5766     - list-style: decimal }
5767     -
5768     -ol.loweralpha {
5769     - list-style: lower-alpha }
5770     -
5771     -ol.upperalpha {
5772     - list-style: upper-alpha }
5773     -
5774     -ol.lowerroman {
5775     - list-style: lower-roman }
5776     -
5777     -ol.upperroman {
5778     - list-style: upper-roman }
5779     -
5780     -p.attribution {
5781     - text-align: right ;
5782     - margin-left: 50% }
5783     -
5784     -p.caption {
5785     - font-style: italic }
5786     -
5787     -p.credits {
5788     - font-style: italic ;
5789     - font-size: smaller }
5790     -
5791     -p.label {
5792     - white-space: nowrap }
5793     -
5794     -p.rubric {
5795     - font-weight: bold ;
5796     - font-size: larger ;
5797     - color: maroon ;
5798     - text-align: center }
5799     -
5800     -p.sidebar-title {
5801     - font-family: sans-serif ;
5802     - font-weight: bold ;
5803     - font-size: larger }
5804     -
5805     -p.sidebar-subtitle {
5806     - font-family: sans-serif ;
5807     - font-weight: bold }
5808     -
5809     -p.topic-title {
5810     - font-weight: bold }
5811     -
5812     -pre.address {
5813     - margin-bottom: 0 ;
5814     - margin-top: 0 ;
5815     - font: inherit }
5816     -
5817     -pre.literal-block, pre.doctest-block, pre.math, pre.code {
5818     - margin-left: 2em ;
5819     - margin-right: 2em }
5820     -
5821     -pre.code .ln { color: grey; } /* line numbers */
5822     -pre.code, code { background-color: #eeeeee }
5823     -pre.code .comment, code .comment { color: #5C6576 }
5824     -pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
5825     -pre.code .literal.string, code .literal.string { color: #0C5404 }
5826     -pre.code .name.builtin, code .name.builtin { color: #352B84 }
5827     -pre.code .deleted, code .deleted { background-color: #DEB0A1}
5828     -pre.code .inserted, code .inserted { background-color: #A3D289}
5829     -
5830     -span.classifier {
5831     - font-family: sans-serif ;
5832     - font-style: oblique }
5833     -
5834     -span.classifier-delimiter {
5835     - font-family: sans-serif ;
5836     - font-weight: bold }
5837     -
5838     -span.interpreted {
5839     - font-family: sans-serif }
5840     -
5841     -span.option {
5842     - white-space: nowrap }
5843     -
5844     -span.pre {
5845     - white-space: pre }
5846     -
5847     -span.problematic {
5848     - color: red }
5849     -
5850     -span.section-subtitle {
5851     - /* font-size relative to parent (h1..h6 element) */
5852     - font-size: 80% }
5853     -
5854     -table.citation {
5855     - border-left: solid 1px gray;
5856     - margin-left: 1px }
5857     -
5858     -table.docinfo {
5859     - margin: 2em 4em }
5860     -
5861     -table.docutils {
5862     - margin-top: 0.5em ;
5863     - margin-bottom: 0.5em }
5864     -
5865     -table.footnote {
5866     - border-left: solid 1px black;
5867     - margin-left: 1px }
5868     -
5869     -table.docutils td, table.docutils th,
5870     -table.docinfo td, table.docinfo th {
5871     - padding-left: 0.5em ;
5872     - padding-right: 0.5em ;
5873     - vertical-align: top }
5874     -
5875     -table.docutils th.field-name, table.docinfo th.docinfo-name {
5876     - font-weight: bold ;
5877     - text-align: left ;
5878     - white-space: nowrap ;
5879     - padding-left: 0 }
5880     -
5881     -/* "booktabs" style (no vertical lines) */
5882     -table.docutils.booktabs {
5883     - border: 0px;
5884     - border-top: 2px solid;
5885     - border-bottom: 2px solid;
5886     - border-collapse: collapse;
5887     -}
5888     -table.docutils.booktabs * {
5889     - border: 0px;
5890     -}
5891     -table.docutils.booktabs th {
5892     - border-bottom: thin solid;
5893     - text-align: left;
5894     -}
5895     -
5896     -h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
5897     -h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
5898     - font-size: 100% }
5899     -
5900     -ul.auto-toc {
5901     - list-style-type: none }
5902     -
5903     -</style>
5904     -</head>
5905     -<body>
5906     -<div class="document">
5907     -
5908     -
5909     -<div class="section" id="dl-0-18-1-2017-09-06">
5910     -<h1>dl 0.18.1: 2017-09-06</h1>
5911     -<ul class="simple">
5912     -<li>Fix upgrade script and incompatibilities when using MySQL.
5913     -Thanks to Daniel Berteaud.</li>
5914     -</ul>
5915     -</div>
5916     -<div class="section" id="dl-0-18-2017-09-04">
5917     -<h1>dl 0.18: 2017-09-04</h1>
5918     -<p>Major new features:</p>
5919     -<ul class="simple">
5920     -<li>Support for multiple file uploads in both tickets and grants. When multiple
5921     -files are attached, a Zip archive is automatically created with the contents.
5922     -The PHP &quot;Zip&quot; extension is now required.</li>
5923     -<li>Grants are now reusable. With the new defaults, senders are no longer
5924     -restricted to a single use/file per grant, but can keep reusing the same link
5925     -as needed. The grant, just like a ticket, is then automatically expired when
5926     -left unused for a certain amount of time.</li>
5927     -<li>Tickets generated while using a grant are now split into a separated
5928     -&quot;Received files&quot; page. The &quot;All tickets&quot; page reserved to administrators
5929     -still shows all tickets combined and color-coded.</li>
5930     -<li>A new Android client is now available: <tt class="docutils literal">PokéDL</tt>.</li>
5931     -</ul>
5932     -<p>Enhancements:</p>
5933     -<ul class="simple">
5934     -<li>The ticket and grant expiration parameters have been streamlined for common
5935     -usage patterns, becoming mostly self-explanatory.</li>
5936     -<li>When using a grant, the user can now attach a comment alongside the uploaded
5937     -file/s. The comment is sent back to the grant owner in the notification.</li>
5938     -<li>Tickets now show the generating grant ID in the edit/detailed view.</li>
5939     -<li>The grant comment assigned during creation is now shown in both the tooltip
5940     -of the grant list and in email notifications involving grant usage.</li>
5941     -<li>Ticket/grant passwords were previously always included in notifications. The
5942     -password sending policy can now be controlled at creation time, and defaults
5943     -to sending the password only when automatically generated.</li>
5944     -<li>The subject prefix in email notifications can now be customized.</li>
5945     -<li><tt class="docutils literal"><span class="pre">dl-wx</span></tt> now allows to generate grants.</li>
5946     -<li>General <tt class="docutils literal"><span class="pre">dl-cli</span></tt> overhaul:<ul>
5947     -<li>dl-cli now runs under both python 3 and python 2.7, preferring python 3</li>
5948     -<li>The password can be read from an external command using <tt class="docutils literal">passcmd</tt></li>
5949     -<li>Public-key pinning is now supported through the <tt class="docutils literal">fingerprint</tt> option</li>
5950     -<li>Multiple files can now be uploaded in a single ticket (for efficiency,
5951     -dl-cli generates a Zip archive locally before uploading)</li>
5952     -<li>When generating a grant, the email address is now optional if available
5953     -in the configuration file</li>
5954     -<li>The ConfigObj module is now required</li>
5955     -</ul>
5956     -</li>
5957     -</ul>
5958     -<p>Bug fixes:</p>
5959     -<ul class="simple">
5960     -<li>Tickets generated while using a grant were incorrectly calculating the expiry
5961     -from the grant <em>creation</em> time, resulting in premature expiration. Ticket
5962     -expiry is now calculated starting at actual <em>upload</em> time.</li>
5963     -<li>Download of files larger than 2GB would previously fail when using DL with
5964     -MySQL or Postgres. Fix by Daniel Berteaud.</li>
5965     -<li>Ticket and grant invalid access or invalid password attempts are now logged.</li>
5966     -<li>Left-clicking on the <tt class="docutils literal"><span class="pre">dl-wx</span></tt> tray's icon on Linux now works as expected.</li>
5967     -</ul>
5968     -<p>Other changes:</p>
5969     -<ul class="simple">
5970     -<li>The minimum required PHP version has been raised to 5.5 or higher.</li>
5971     -<li>Important PHP settings are now preset in the bundled <tt class="docutils literal"><span class="pre">htdocs/.htaccess</span></tt>
5972     -file for the Apache/mod_php combination.</li>
5973     -<li>Simplified Chinese translation by Guangyu Dong.</li>
5974     -<li>Russian translation by Олейник О.В.</li>
5975     -<li>The Thunderbird add-on has been updated to support Thunderbird 52.</li>
5976     -<li>The Windows <tt class="docutils literal"><span class="pre">dl-wx</span></tt> executable has been rebuilt with SNI support.</li>
5977     -</ul>
5978     -<p>Please note: DL 0.18 requires a database schema update! Please read the
5979     -database upgrade procedure in the README!</p>
5980     -</div>
5981     -<div class="section" id="dl-0-17-1-2016-05-01">
5982     -<h1>dl 0.17.1: 2016-05-01</h1>
5983     -<ul class="simple">
5984     -<li>Filenames are now sanitized more aggressively when received. This avoids
5985     -browser/client failures when receiving files that contain illegal characters
5986     -for the current platform (which might be legal in another).</li>
5987     -<li>Filenames containing multibyte characters could previously result in
5988     -unexpected truncation; they're now handled correctly.</li>
5989     -<li>The uploaded filename is included in grant notifications.</li>
5990     -<li>The Thunderbird add-on has been updated to support Thunderbird 45.</li>
5991     -<li>In the ticket details, the full timestamp of the download is now shown.</li>
5992     -<li>Minor code and documentation fixes.</li>
5993     -</ul>
5994     -</div>
5995     -<div class="section" id="dl-0-17-2015-06-26">
5996     -<h1>dl 0.17: 2015-06-26</h1>
5997     -<ul class="simple">
5998     -<li>Login attempts are now logged.</li>
5999     -<li>Log messages are now more uniform, always including the remote address and
6000     -username (when available).</li>
6001     -<li>The Thunderbird add-on has been updated to support Thunderbird 38.</li>
6002     -</ul>
6003     -</div>
6004     -<div class="section" id="dl-0-16-2015-01-22">
6005     -<h1>dl 0.16: 2015-01-22</h1>
6006     -<ul class="simple">
6007     -<li>The database connection is automatically re-established when timed out after
6008     -slow uploads/downloads (affects systems not using sqlite).</li>
6009     -<li>dl-cli can now prompt for a password when left unspecified in the
6010     -<tt class="docutils literal"><span class="pre">~/.dl.rc</span></tt> configuration file.</li>
6011     -<li>Added Japanese translation by Teruo IWAI.</li>
6012     -<li>Dutch user-guide translation by Maarten Schoonman.</li>
6013     -</ul>
6014     -</div>
6015     -<div class="section" id="dl-0-15-2014-11-28">
6016     -<h1>dl 0.15: 2014-11-28</h1>
6017     -<ul class="simple">
6018     -<li>File names with special and/or UTF-8 characters are now correctly preserved
6019     -on all browsers.</li>
6020     -<li>Added Dutch translation by Maarten Schoonman.</li>
6021     -</ul>
6022     -</div>
6023     -<div class="section" id="dl-0-14-2014-10-16">
6024     -<h1>dl 0.14: 2014-10-16</h1>
6025     -<ul class="simple">
6026     -<li>Fixed broken <tt class="docutils literal"><span class="pre">Content-Length</span></tt> header with the Apache/mod_php/mod_deflate
6027     -combination, which would prevent downloads to be resumed.</li>
6028     -<li>The built-in skin has been updated.</li>
6029     -<li>The skin can now be customized and set in the configuration file.</li>
6030     -<li>A work-around has been found to allow PHP 5.4-5.5 to upload files up to 4GB
6031     -(note that starting with PHP 5.6 there is no upload size limitation).</li>
6032     -<li>Logging of server-side errors has been improved.</li>
6033     -</ul>
6034     -</div>
6035     -<div class="section" id="dl-0-13-2014-07-31">
6036     -<h1>dl 0.13: 2014-07-31</h1>
6037     -<ul class="simple">
6038     -<li>The &quot;Active tickets/grants&quot; pages for administrators now show only their own
6039     -tickets, like for normal users. Other tickets are visible in the new &quot;All
6040     -tickets/grants&quot; pages.</li>
6041     -<li>Upload progress information is now implemented client-side using HTML5/JS,
6042     -which is both more responsive and waives any PHP configuration/version
6043     -restrictions.</li>
6044     -<li>Ticket/grant/user listings can now be sorted by clicking on the table header.</li>
6045     -<li>The date/time format can now be customized.</li>
6046     -<li>Spaces in uploaded file names are now correctly preserved.</li>
6047     -<li>The REST interface can now be used with the built-in authentication method
6048     -without additional configuration <em>also</em> when using apache/fcgi.</li>
6049     -<li>The REST interface now supports a method to generate grants.</li>
6050     -<li>The Thunderbird add-on now includes a new menu command (under &quot;Tools&quot;) and a
6051     -new toolbar icon in the composer window to generate and insert grants in the
6052     -current message.</li>
6053     -<li>Added Brazilian Portuguese and Czech localizations (thanks to Guilherme
6054     -Benkenstein and Jan Štětina).</li>
6055     -<li>Minor bug/cosmetic fixes.</li>
6056     -</ul>
6057     -<p>DL 0.12 is the last release offering an upgrade path from DL 0.3. Version 0.13
6058     -can only upgrade from 0.4 and above. If you have an old installation, you'll
6059     -need to perform a two step upgrade using an earlier release.</p>
6060     -</div>
6061     -<div class="section" id="dl-0-12-2013-12-10">
6062     -<h1>dl 0.12: 2013-12-10</h1>
6063     -<ul class="simple">
6064     -<li>Add a new configurable &quot;e-mail&quot; address in the preferences, which is used as
6065     -a default when creating grants and receiving notifications.</li>
6066     -<li>Support for MySQL and PostgreSQL.</li>
6067     -<li>Support for provided e-mail address with external authentication using
6068     -<tt class="docutils literal">USER_EMAIL</tt> header (useful for LemonLDAP::NG/webSSO).</li>
6069     -<li>Fix REST interface when used in combination with LemonLDAP::NG/webSSO.</li>
6070     -<li>Improved French localization.</li>
6071     -<li>The timezone of the web interface is now customizable.</li>
6072     -<li>Minor bug/cosmetic fixes.</li>
6073     -</ul>
6074     -<p>Please note: DL 0.12 requires a database schema update! Please read the
6075     -database upgrade procedure in the README!</p>
6076     -</div>
6077     -<div class="section" id="dl-0-11-2013-07-05">
6078     -<h1>dl 0.11: 2013-07-05</h1>
6079     -<ul class="simple">
6080     -<li>Fixed CSRF vulnerability of the admin interface (discovered by Dirk Reimers).</li>
6081     -<li>Mitigations against session fixation attacks (discovered by Dirk Reimers).</li>
6082     -<li>Fixed CSRF vulnerability of the REST interface when used in combination with
6083     -HTTP/external authentication.</li>
6084     -<li>Improved client-side validation of the forms (with HTML5/JS where available).</li>
6085     -<li>Password hashing for the user/ticket/grant DB switched to PHPass.</li>
6086     -<li>Progress bar updating improvements.</li>
6087     -<li>Thunderbird integration is now available through the new included extension
6088     -&quot;Thunderbird-Filelink-DL&quot;, which converts attachments to links automatically.</li>
6089     -<li>Minor bug/cosmetic fixes.</li>
6090     -</ul>
6091     -<p>Please note: DL 0.11 requires a database schema update! Please read the
6092     -database upgrade procedure in the README!</p>
6093     -<p>Upgrading to DL 0.11 has implication for existing users. The new hashing scheme
6094     -limits usernames to 60 characters and passwords to 72 to prevent DoS attacks.
6095     -Users having usernames/passwords exceeding these limits won't be able to login
6096     -after the upgrade, and can only be managed manually through the command line.</p>
6097     -<p>The password hash of existing users is automatically rehashed using the new
6098     -scheme upon a successful login (no password change is required).</p>
6099     -<p>The optional password of tickets and grants is similarly affected and upgraded
6100     -transparently upon successful usage. Tickets/grants having passwords longer
6101     -than 72 characters though will require a manual password reset.</p>
6102     -<p>To fully prevent CSRF attacks on the REST interface when used in combination
6103     -with HTTP authentication the protocol has been broken. Clients (such as the
6104     -supplied &quot;dl-wx&quot;) require an upgrade, though new clients can still communicate
6105     -to an old server.</p>
6106     -</div>
6107     -<div class="section" id="dl-0-10-1-2012-03-09">
6108     -<h1>dl 0.10.1: 2012-03-09</h1>
6109     -<ul class="simple">
6110     -<li>A bug was fixed in the initialization code that could cause grant uploads to
6111     -fail in certain configurations.</li>
6112     -</ul>
6113     -</div>
6114     -<div class="section" id="dl-0-10-2012-02-06">
6115     -<h1>dl 0.10: 2012-02-06</h1>
6116     -<ul class="simple">
6117     -<li>The default configuration file has been renamed to &quot;config.php.dist&quot; and must
6118     -now be manually copied/renamed to be used. If a suitable &quot;config.php&quot; is not
6119     -found in the include/ directory, then the configuration is read from
6120     -&quot;/etc/dl.php&quot;. This will allow smoother release upgrades in the future.</li>
6121     -<li>Notifications of tickets and grants now use the same locale that was used
6122     -during the creation of the ticket/grant itself.</li>
6123     -<li>A new &quot;Preferences&quot; page has been added, allowing users to change their
6124     -password (currently supported only for internal authentication).</li>
6125     -<li>Changing &quot;hours after last download&quot; while editing a ticket didn't actually
6126     -extend the ticket lifetime. Changing the ticket lifetime now works correctly.</li>
6127     -<li>&quot;hours after last download&quot; has been changed to &quot;days after last download&quot;.</li>
6128     -<li>Default ticket/grant expiration settings have been increased significantly.</li>
6129     -<li>A new REST API has been implemented, allowing external applications to use the
6130     -service programmatically.</li>
6131     -<li>Two python clients have been added to the distribution: a command-line python
6132     -client &quot;dl-cli&quot; and a graphical client &quot;dl-wx&quot;.</li>
6133     -<li>Minor bug and UI fixes.</li>
6134     -</ul>
6135     -<p>Please note: DL 0.10 requires a database schema and webserver configuration
6136     -update! Please read the database upgrade procedure in the README and the
6137     -relevant notes about web server configuration.</p>
6138     -</div>
6139     -<div class="section" id="dl-0-9-1-2011-12-31">
6140     -<h1>dl 0.9.1: 2011-12-31</h1>
6141     -<ul class="simple">
6142     -<li>Fixed a grave security issue: unauthorized parties can perform login as any
6143     -arbitrary user when using the built-in authentication mechanism by supplying
6144     -an authorization header. DL versions down to 0.3 are affected.</li>
6145     -</ul>
6146     -</div>
6147     -<div class="section" id="dl-0-9-2011-04-06">
6148     -<h1>dl 0.9: 2011-04-06</h1>
6149     -<ul class="simple">
6150     -<li>The settings of tickets and grants are now stored independently.</li>
6151     -<li>Default ticket/grant settings can be specified in the config file.</li>
6152     -<li>Most ticket and grant options are now moved into an &quot;advanced&quot; panel.</li>
6153     -<li>Grant notifications now include the ticket password in the message.</li>
6154     -<li>Form validation is now also performed in JavaScript.</li>
6155     -<li>Enlarged the width of the interface to 800px.</li>
6156     -<li>Users management is now available through the web interface.</li>
6157     -<li>French, Italian, Spanish and German translation.</li>
6158     -<li>Multi-line comments can be attached to tickets and grants.</li>
6159     -<li>Improved the e-mail notification text.</li>
6160     -<li>Improved ticket and grant listings.</li>
6161     -<li>Tickets can now be edited after being created.</li>
6162     -<li>Minor bug and UI fixes.</li>
6163     -</ul>
6164     -</div>
6165     -<div class="section" id="dl-0-8-2010-07-10">
6166     -<h1>dl 0.8: 2010-07-10</h1>
6167     -<ul class="simple">
6168     -<li>Update PHP-Gettext to 1.1.10 (fixing several PHP Notices).</li>
6169     -<li>Fix browser language autodetection (typo, thanks to Bert-Jan Kamp).</li>
6170     -<li>Fix ticket expiration when using sqlite3 (table locking issues).</li>
6171     -<li>Do not purge tickets prematurely after an unsuccessful download.</li>
6172     -<li>Purge tickets immediately after the download, when possible.</li>
6173     -<li>&quot;useradmin.php&quot; now allows to reset/change user role and password.</li>
6174     -<li>All notifications are now sent using the default locale.</li>
6175     -<li>Ticket expiration can be performed with an external utility.</li>
6176     -<li>The user-guide is now included in the admin interface.</li>
6177     -</ul>
6178     -</div>
6179     -<div class="section" id="dl-0-7-2010-03-10">
6180     -<h1>dl 0.7: 2010-03-10</h1>
6181     -<ul class="simple">
6182     -<li>Fix XSS vulnerability for unknown ticket IDs (discovered by Sven Eric Neuz)</li>
6183     -</ul>
6184     -</div>
6185     -<div class="section" id="dl-0-6-2010-03-03">
6186     -<h1>dl 0.6: 2010-03-03</h1>
6187     -<ul class="simple">
6188     -<li>Remember the selected language with a cookie.</li>
6189     -<li>Allow to tune the DB expiration process to improve the performance.</li>
6190     -<li>Fixed E-Mail subject encoding.</li>
6191     -<li>German translation update.</li>
6192     -<li>PHP 5.3 warning fixes.</li>
6193     -</ul>
6194     -</div>
6195     -<div class="section" id="dl-0-5-2010-02-09">
6196     -<h1>dl 0.5: 2010-02-09</h1>
6197     -<ul class="simple">
6198     -<li>Fix upload progress-bar on Chrome and Safari.</li>
6199     -<li>Minor bug, UI and usability fixes.</li>
6200     -<li>Internationalization support.</li>
6201     -<li>Italian and German translation.</li>
6202     -<li>License changed to GNU GPL 2.</li>
6203     -</ul>
6204     -</div>
6205     -<div class="section" id="dl-0-4-2009-11-24">
6206     -<h1>dl 0.4: 2009-11-24</h1>
6207     -<ul class="simple">
6208     -<li>Ticket activity can be logged to syslog or a file.</li>
6209     -<li>The minimal required PHP version is now 5.0.</li>
6210     -<li>PDO is now used for the users/tickets database (defaulting to a sqlite
6211     -database). Upgrading instructions in the README.</li>
6212     -<li>The submission form now allows to automatically send a link of the ticket to
6213     -the specified address/es.</li>
6214     -<li>A ticket can now require a password to be downloaded.</li>
6215     -<li>&quot;Upload grants&quot; can now be created, allowing others to send you a single file
6216     -through DL.</li>
6217     -<li>Progress-bar indicator during uploads.</li>
6218     -<li>Required fields are highlighted when missing.</li>
6219     -</ul>
6220     -</div>
6221     -<div class="section" id="dl-0-3-2009-09-02">
6222     -<h1>dl 0.3: 2009-09-02</h1>
6223     -<ul class="simple">
6224     -<li>CSS-ification, with new skin from Kim Thostrup &lt;<a class="reference external" href="mailto:kim&#64;thostrup.dk">kim&#64;thostrup.dk</a>&gt;.</li>
6225     -<li>Include IE5/6 PNG fix from Angus Turnbull <a class="reference external" href="http://www.twinhelix.com">http://www.twinhelix.com</a></li>
6226     -<li>Multiuser support with HTTP authentication or internal user database.</li>
6227     -<li>License changed to LGPL 3</li>
6228     -</ul>
6229     -</div>
6230     -<div class="section" id="dl-0-2-2007-10-10">
6231     -<h1>dl 0.2: 2007-10-10</h1>
6232     -<ul class="simple">
6233     -<li>Renamed &quot;aux.php&quot; to &quot;funcs.php&quot; to avoid &quot;reserved file name&quot; errors
6234     -under Windows.</li>
6235     -<li>Support commas in addition to semicolons as e-mail separators in the
6236     -notify field.</li>
6237     -<li>Removed the 'ID' field in &quot;active tickets&quot; listings.</li>
6238     -<li>Allow to attach a comment in any ticket.</li>
6239     -<li>Byte-ranges support.</li>
6240     -</ul>
6241     -</div>
6242     -<div class="section" id="dl-0-1-2007-06-15">
6243     -<h1>dl 0.1: 2007-06-15</h1>
6244     -<ul class="simple">
6245     -<li>First release.</li>
6246     -</ul>
6247     -</div>
6248     -</div>
6249     -</body>
6250     -</html>
6251     diff -Nur dl-0.18.1/NEWS.rst dl-master/NEWS.rst
6252     --- dl-0.18.1/NEWS.rst 2017-09-06 12:08:38.000000000 -0400
6253     +++ dl-master/NEWS.rst 2021-03-16 18:59:58.000000000 -0400
6254     @@ -1,3 +1,15 @@
6255     +dl 0.19: 2021-??-??
6256     +-------------------
6257     +
6258     +* Fix compatibility with PHP 8 (includes an update of the built-in
6259     + PHP-Gettext to 1.0.12).
6260     +* Enforce display_errors=Off once logging is setup.
6261     +* Fix temporary ZIP file creation (thanks to @SQ-SEN).
6262     +* Fix spurious notices in basefuncs.php (thanks to Emanuele Rosati).
6263     +* Fix warning in parameter validation with PHP 8.
6264     +* Allow unicode filenames in ``dl-cli`` (thanks to @mjg)
6265     +
6266     +
6267     dl 0.18.1: 2017-09-06
6268     ---------------------
6269    
6270     @@ -266,7 +278,7 @@
6271     dl 0.8: 2010-07-10
6272     ------------------
6273    
6274     -* Update PHP-Gettext to 1.1.10 (fixing several PHP Notices).
6275     +* Update PHP-Gettext to 1.0.10 (fixing several PHP Notices).
6276     * Fix browser language autodetection (typo, thanks to Bert-Jan Kamp).
6277     * Fix ticket expiration when using sqlite3 (table locking issues).
6278     * Do not purge tickets prematurely after an unsuccessful download.
6279     diff -Nur dl-0.18.1/README.html dl-master/README.html
6280     --- dl-0.18.1/README.html 2017-09-06 12:09:39.000000000 -0400
6281     +++ dl-master/README.html 1969-12-31 19:00:00.000000000 -0500
6282     @@ -1,1108 +0,0 @@
6283     -<?xml version="1.0" encoding="utf-8" ?>
6284     -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
6285     -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6286     -<head>
6287     -<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6288     -<meta name="generator" content="Docutils 0.13.1: http://docutils.sourceforge.net/" />
6289     -<title>dl: download ticket service</title>
6290     -<style type="text/css">
6291     -
6292     -/*
6293     -:Author: David Goodger (goodger@python.org)
6294     -:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
6295     -:Copyright: This stylesheet has been placed in the public domain.
6296     -
6297     -Default cascading style sheet for the HTML output of Docutils.
6298     -
6299     -See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
6300     -customize this style sheet.
6301     -*/
6302     -
6303     -/* used to remove borders from tables and images */
6304     -.borderless, table.borderless td, table.borderless th {
6305     - border: 0 }
6306     -
6307     -table.borderless td, table.borderless th {
6308     - /* Override padding for "table.docutils td" with "! important".
6309     - The right padding separates the table cells. */
6310     - padding: 0 0.5em 0 0 ! important }
6311     -
6312     -.first {
6313     - /* Override more specific margin styles with "! important". */
6314     - margin-top: 0 ! important }
6315     -
6316     -.last, .with-subtitle {
6317     - margin-bottom: 0 ! important }
6318     -
6319     -.hidden {
6320     - display: none }
6321     -
6322     -.subscript {
6323     - vertical-align: sub;
6324     - font-size: smaller }
6325     -
6326     -.superscript {
6327     - vertical-align: super;
6328     - font-size: smaller }
6329     -
6330     -a.toc-backref {
6331     - text-decoration: none ;
6332     - color: black }
6333     -
6334     -blockquote.epigraph {
6335     - margin: 2em 5em ; }
6336     -
6337     -dl.docutils dd {
6338     - margin-bottom: 0.5em }
6339     -
6340     -object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
6341     - overflow: hidden;
6342     -}
6343     -
6344     -/* Uncomment (and remove this text!) to get bold-faced definition list terms
6345     -dl.docutils dt {
6346     - font-weight: bold }
6347     -*/
6348     -
6349     -div.abstract {
6350     - margin: 2em 5em }
6351     -
6352     -div.abstract p.topic-title {
6353     - font-weight: bold ;
6354     - text-align: center }
6355     -
6356     -div.admonition, div.attention, div.caution, div.danger, div.error,
6357     -div.hint, div.important, div.note, div.tip, div.warning {
6358     - margin: 2em ;
6359     - border: medium outset ;
6360     - padding: 1em }
6361     -
6362     -div.admonition p.admonition-title, div.hint p.admonition-title,
6363     -div.important p.admonition-title, div.note p.admonition-title,
6364     -div.tip p.admonition-title {
6365     - font-weight: bold ;
6366     - font-family: sans-serif }
6367     -
6368     -div.attention p.admonition-title, div.caution p.admonition-title,
6369     -div.danger p.admonition-title, div.error p.admonition-title,
6370     -div.warning p.admonition-title, .code .error {
6371     - color: red ;
6372     - font-weight: bold ;
6373     - font-family: sans-serif }
6374     -
6375     -/* Uncomment (and remove this text!) to get reduced vertical space in
6376     - compound paragraphs.
6377     -div.compound .compound-first, div.compound .compound-middle {
6378     - margin-bottom: 0.5em }
6379     -
6380     -div.compound .compound-last, div.compound .compound-middle {
6381     - margin-top: 0.5em }
6382     -*/
6383     -
6384     -div.dedication {
6385     - margin: 2em 5em ;
6386     - text-align: center ;
6387     - font-style: italic }
6388     -
6389     -div.dedication p.topic-title {
6390     - font-weight: bold ;
6391     - font-style: normal }
6392     -
6393     -div.figure {
6394     - margin-left: 2em ;
6395     - margin-right: 2em }
6396     -
6397     -div.footer, div.header {
6398     - clear: both;
6399     - font-size: smaller }
6400     -
6401     -div.line-block {
6402     - display: block ;
6403     - margin-top: 1em ;
6404     - margin-bottom: 1em }
6405     -
6406     -div.line-block div.line-block {
6407     - margin-top: 0 ;
6408     - margin-bottom: 0 ;
6409     - margin-left: 1.5em }
6410     -
6411     -div.sidebar {
6412     - margin: 0 0 0.5em 1em ;
6413     - border: medium outset ;
6414     - padding: 1em ;
6415     - background-color: #ffffee ;
6416     - width: 40% ;
6417     - float: right ;
6418     - clear: right }
6419     -
6420     -div.sidebar p.rubric {
6421     - font-family: sans-serif ;
6422     - font-size: medium }
6423     -
6424     -div.system-messages {
6425     - margin: 5em }
6426     -
6427     -div.system-messages h1 {
6428     - color: red }
6429     -
6430     -div.system-message {
6431     - border: medium outset ;
6432     - padding: 1em }
6433     -
6434     -div.system-message p.system-message-title {
6435     - color: red ;
6436     - font-weight: bold }
6437     -
6438     -div.topic {
6439     - margin: 2em }
6440     -
6441     -h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
6442     -h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
6443     - margin-top: 0.4em }
6444     -
6445     -h1.title {
6446     - text-align: center }
6447     -
6448     -h2.subtitle {
6449     - text-align: center }
6450     -
6451     -hr.docutils {
6452     - width: 75% }
6453     -
6454     -img.align-left, .figure.align-left, object.align-left, table.align-left {
6455     - clear: left ;
6456     - float: left ;
6457     - margin-right: 1em }
6458     -
6459     -img.align-right, .figure.align-right, object.align-right, table.align-right {
6460     - clear: right ;
6461     - float: right ;
6462     - margin-left: 1em }
6463     -
6464     -img.align-center, .figure.align-center, object.align-center {
6465     - display: block;
6466     - margin-left: auto;
6467     - margin-right: auto;
6468     -}
6469     -
6470     -table.align-center {
6471     - margin-left: auto;
6472     - margin-right: auto;
6473     -}
6474     -
6475     -.align-left {
6476     - text-align: left }
6477     -
6478     -.align-center {
6479     - clear: both ;
6480     - text-align: center }
6481     -
6482     -.align-right {
6483     - text-align: right }
6484     -
6485     -/* reset inner alignment in figures */
6486     -div.align-right {
6487     - text-align: inherit }
6488     -
6489     -/* div.align-center * { */
6490     -/* text-align: left } */
6491     -
6492     -.align-top {
6493     - vertical-align: top }
6494     -
6495     -.align-middle {
6496     - vertical-align: middle }
6497     -
6498     -.align-bottom {
6499     - vertical-align: bottom }
6500     -
6501     -ol.simple, ul.simple {
6502     - margin-bottom: 1em }
6503     -
6504     -ol.arabic {
6505     - list-style: decimal }
6506     -
6507     -ol.loweralpha {
6508     - list-style: lower-alpha }
6509     -
6510     -ol.upperalpha {
6511     - list-style: upper-alpha }
6512     -
6513     -ol.lowerroman {
6514     - list-style: lower-roman }
6515     -
6516     -ol.upperroman {
6517     - list-style: upper-roman }
6518     -
6519     -p.attribution {
6520     - text-align: right ;
6521     - margin-left: 50% }
6522     -
6523     -p.caption {
6524     - font-style: italic }
6525     -
6526     -p.credits {
6527     - font-style: italic ;
6528     - font-size: smaller }
6529     -
6530     -p.label {
6531     - white-space: nowrap }
6532     -
6533     -p.rubric {
6534     - font-weight: bold ;
6535     - font-size: larger ;
6536     - color: maroon ;
6537     - text-align: center }
6538     -
6539     -p.sidebar-title {
6540     - font-family: sans-serif ;
6541     - font-weight: bold ;
6542     - font-size: larger }
6543     -
6544     -p.sidebar-subtitle {
6545     - font-family: sans-serif ;
6546     - font-weight: bold }
6547     -
6548     -p.topic-title {
6549     - font-weight: bold }
6550     -
6551     -pre.address {
6552     - margin-bottom: 0 ;
6553     - margin-top: 0 ;
6554     - font: inherit }
6555     -
6556     -pre.literal-block, pre.doctest-block, pre.math, pre.code {
6557     - margin-left: 2em ;
6558     - margin-right: 2em }
6559     -
6560     -pre.code .ln { color: grey; } /* line numbers */
6561     -pre.code, code { background-color: #eeeeee }
6562     -pre.code .comment, code .comment { color: #5C6576 }
6563     -pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
6564     -pre.code .literal.string, code .literal.string { color: #0C5404 }
6565     -pre.code .name.builtin, code .name.builtin { color: #352B84 }
6566     -pre.code .deleted, code .deleted { background-color: #DEB0A1}
6567     -pre.code .inserted, code .inserted { background-color: #A3D289}
6568     -
6569     -span.classifier {
6570     - font-family: sans-serif ;
6571     - font-style: oblique }
6572     -
6573     -span.classifier-delimiter {
6574     - font-family: sans-serif ;
6575     - font-weight: bold }
6576     -
6577     -span.interpreted {
6578     - font-family: sans-serif }
6579     -
6580     -span.option {
6581     - white-space: nowrap }
6582     -
6583     -span.pre {
6584     - white-space: pre }
6585     -
6586     -span.problematic {
6587     - color: red }
6588     -
6589     -span.section-subtitle {
6590     - /* font-size relative to parent (h1..h6 element) */
6591     - font-size: 80% }
6592     -
6593     -table.citation {
6594     - border-left: solid 1px gray;
6595     - margin-left: 1px }
6596     -
6597     -table.docinfo {
6598     - margin: 2em 4em }
6599     -
6600     -table.docutils {
6601     - margin-top: 0.5em ;
6602     - margin-bottom: 0.5em }
6603     -
6604     -table.footnote {
6605     - border-left: solid 1px black;
6606     - margin-left: 1px }
6607     -
6608     -table.docutils td, table.docutils th,
6609     -table.docinfo td, table.docinfo th {
6610     - padding-left: 0.5em ;
6611     - padding-right: 0.5em ;
6612     - vertical-align: top }
6613     -
6614     -table.docutils th.field-name, table.docinfo th.docinfo-name {
6615     - font-weight: bold ;
6616     - text-align: left ;
6617     - white-space: nowrap ;
6618     - padding-left: 0 }
6619     -
6620     -/* "booktabs" style (no vertical lines) */
6621     -table.docutils.booktabs {
6622     - border: 0px;
6623     - border-top: 2px solid;
6624     - border-bottom: 2px solid;
6625     - border-collapse: collapse;
6626     -}
6627     -table.docutils.booktabs * {
6628     - border: 0px;
6629     -}
6630     -table.docutils.booktabs th {
6631     - border-bottom: thin solid;
6632     - text-align: left;
6633     -}
6634     -
6635     -h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
6636     -h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
6637     - font-size: 100% }
6638     -
6639     -ul.auto-toc {
6640     - list-style-type: none }
6641     -
6642     -</style>
6643     -</head>
6644     -<body>
6645     -<div class="document" id="dl-download-ticket-service">
6646     -<h1 class="title">dl: download ticket service</h1>
6647     -
6648     -<div class="contents topic" id="contents">
6649     -<p class="topic-title first">Contents</p>
6650     -<ul class="simple">
6651     -<li><a class="reference internal" href="#requirements" id="id1">Requirements</a></li>
6652     -<li><a class="reference internal" href="#installation" id="id2">Installation</a><ul>
6653     -<li><a class="reference internal" href="#dl-installation" id="id3">DL installation</a></li>
6654     -<li><a class="reference internal" href="#database-setup" id="id4">Database setup</a></li>
6655     -<li><a class="reference internal" href="#php-setup" id="id5">PHP setup</a></li>
6656     -<li><a class="reference internal" href="#user-setup" id="id6">User setup</a><ul>
6657     -<li><a class="reference internal" href="#internal-authentication" id="id7">Internal authentication</a></li>
6658     -<li><a class="reference internal" href="#external-authentication" id="id8">External authentication</a></li>
6659     -</ul>
6660     -</li>
6661     -<li><a class="reference internal" href="#large-file-support" id="id9">Large file support</a></li>
6662     -</ul>
6663     -</li>
6664     -<li><a class="reference internal" href="#web-server-configuration" id="id10">Web-server Configuration</a><ul>
6665     -<li><a class="reference internal" href="#apache-mod-php" id="id11">Apache/mod_php</a></li>
6666     -<li><a class="reference internal" href="#apache-fastcgi" id="id12">Apache/FastCGI</a></li>
6667     -<li><a class="reference internal" href="#lighttpd-fastcgi" id="id13">Lighttpd/FastCGI</a></li>
6668     -<li><a class="reference internal" href="#nginx-fastcgi" id="id14">Nginx/FastCGI</a></li>
6669     -</ul>
6670     -</li>
6671     -<li><a class="reference internal" href="#ticket-expiration" id="id15">Ticket expiration</a><ul>
6672     -<li><a class="reference internal" href="#internal-method" id="id16">Internal method</a></li>
6673     -<li><a class="reference internal" href="#external-method" id="id17">External method</a></li>
6674     -</ul>
6675     -</li>
6676     -<li><a class="reference internal" href="#upgrading-from-an-earlier-version" id="id18">Upgrading from an earlier version</a></li>
6677     -<li><a class="reference internal" href="#internationalization-support" id="id19">Internationalization support</a><ul>
6678     -<li><a class="reference internal" href="#contributing-updating-a-translation" id="id20">Contributing/updating a translation</a></li>
6679     -</ul>
6680     -</li>
6681     -<li><a class="reference internal" href="#usage" id="id21">Usage</a><ul>
6682     -<li><a class="reference internal" href="#command-line-client-dl-cli" id="id22">Command-line client: <tt class="docutils literal"><span class="pre">dl-cli</span></tt></a></li>
6683     -<li><a class="reference internal" href="#graphical-client-dl-wx" id="id23">Graphical client: <tt class="docutils literal"><span class="pre">dl-wx</span></tt></a></li>
6684     -<li><a class="reference internal" href="#public-key-pinning" id="id24">Public key pinning</a></li>
6685     -<li><a class="reference internal" href="#thunderbird-integration" id="id25">Thunderbird integration</a></li>
6686     -</ul>
6687     -</li>
6688     -<li><a class="reference internal" href="#general-support-mailing-list" id="id26">General/support mailing list</a></li>
6689     -<li><a class="reference internal" href="#customisation-and-development" id="id27">Customisation and development</a><ul>
6690     -<li><a class="reference internal" href="#development-releases" id="id28">Development releases</a></li>
6691     -</ul>
6692     -</li>
6693     -<li><a class="reference internal" href="#authors-and-copyright" id="id29">Authors and Copyright</a></li>
6694     -</ul>
6695     -</div>
6696     -<p>&quot;dl&quot; is a simple file sharing service for quick/one-off file transfers. Upload
6697     -a file to get a link you can share. Or create a sharing link to receive files
6698     -from others. The uploaded files are automatically removed when left unused,
6699     -requiring zero additional maintenance.</p>
6700     -<p>&quot;dl&quot; is <em>built for your users</em>: easy to use with any browser, integrates
6701     -smoothly with Thunderbird for large attachments, works on Android, Windows
6702     -and OSX or straight from the command line for maximum convenience.</p>
6703     -<div class="section" id="requirements">
6704     -<h1><a class="toc-backref" href="#id1">Requirements</a></h1>
6705     -<ul class="simple">
6706     -<li>PHP 5.5 or higher.</li>
6707     -<li>PHP SQLite module (or another PDO database module).</li>
6708     -<li>PHP mbstring module.</li>
6709     -<li>PHP OpenSSL module.</li>
6710     -<li>PHP Zip module.</li>
6711     -<li>Web server access for installation and setup.</li>
6712     -</ul>
6713     -</div>
6714     -<div class="section" id="installation">
6715     -<h1><a class="toc-backref" href="#id2">Installation</a></h1>
6716     -<p>The installation is divided into three steps:</p>
6717     -<ol class="arabic simple">
6718     -<li>Installation of the files</li>
6719     -<li>Database creation/setup or database upgrade</li>
6720     -<li>Initial user creation</li>
6721     -</ol>
6722     -<p>Due to the number of possible configurations, the installation must be carried
6723     -on manually.</p>
6724     -<div class="section" id="dl-installation">
6725     -<h2><a class="toc-backref" href="#id3">DL installation</a></h2>
6726     -<ul>
6727     -<li><p class="first">Copy the <tt class="docutils literal">htdocs</tt> directory contained in the archive to a directory of
6728     -choice under your web server.</p>
6729     -</li>
6730     -<li><p class="first">Copy <tt class="docutils literal">include/config.php.dist</tt> to either <tt class="docutils literal">include/config.php</tt> or
6731     -<tt class="docutils literal">/etc/dl.php</tt> and customize as needed. This usually means changing the URL
6732     -and E-Mail of the service.</p>
6733     -</li>
6734     -<li><p class="first">Ensure the <tt class="docutils literal">include</tt> and <tt class="docutils literal"><span class="pre">style/*/include</span></tt> directories are <em>not</em> directly
6735     -accessible externally. Type <tt class="docutils literal"><span class="pre">http://dl.example.com/include/config.php</span></tt> and
6736     -verify that you <em>correctly</em> get an &quot;Access Denied&quot; error.</p>
6737     -<p>If you use Apache, the provided <tt class="docutils literal">.htaccess</tt> files should be already
6738     -sufficient; consult your web server documentation otherwise.</p>
6739     -</li>
6740     -<li><p class="first">Create a spool directory that will be used by the service to store the files,
6741     -user and ticket information. This directory <em>should</em> be outside of the
6742     -document root of your web server. Fix the permissions so that PHP has
6743     -read/write access to it.</p>
6744     -<p>In the provided <tt class="docutils literal">include/config.php</tt> this is configured as
6745     -<tt class="docutils literal">/var/spool/dl</tt>. If you web server runs as &quot;nobody:nogroup&quot;, issue:</p>
6746     -<pre class="literal-block">
6747     -mkdir -p -m770 /var/spool/dl
6748     -chgrp nogroup /var/spool/dl
6749     -</pre>
6750     -<p>to create correctly this directory.</p>
6751     -</li>
6752     -<li><p class="first">Create a database (as described in <a class="reference internal" href="#database-setup">Database setup</a>).</p>
6753     -</li>
6754     -<li><p class="first">Create at least one user (as described in <a class="reference internal" href="#internal-authentication">Internal authentication</a>).</p>
6755     -</li>
6756     -</ul>
6757     -</div>
6758     -<div class="section" id="database-setup">
6759     -<h2><a class="toc-backref" href="#id4">Database setup</a></h2>
6760     -<p>DL needs a database to store the ticket and user information. By default, DL
6761     -will use an embedded &quot;sqlite&quot; database stored within the spool directory, but
6762     -some manual setup is still required.</p>
6763     -<p>To create the database, you need the <tt class="docutils literal">sqlite3</tt> command.
6764     -On Ubuntu/Debian, <tt class="docutils literal">sqlite3</tt> can by installed by executing:</p>
6765     -<pre class="literal-block">
6766     -sudo apt-get install sqlite3
6767     -</pre>
6768     -<p>You should then execute the provided SQL batch for SQLite <em>with the same user
6769     -as your web server</em> (by using <tt class="docutils literal">su</tt> or <tt class="docutils literal">sudo</tt> if necessary):</p>
6770     -<pre class="literal-block">
6771     -cd /var/spool/dl/
6772     -sqlite3 data.sdb &lt; /your-installation-directory/include/scripts/db/sqlite.sql
6773     -chmod 660 data.sdb
6774     -</pre>
6775     -<p>If you want to change the database path, or use a real database server, you
6776     -need to properly configure the <tt class="docutils literal">$dsn</tt> parameters in <tt class="docutils literal">include/config.php</tt>
6777     -according to your setup. The DSN string changes according to the PDO module
6778     -that you want to use. Please see one of:</p>
6779     -<ul class="simple">
6780     -<li><a class="reference external" href="http://www.php.net/manual/en/ref.pdo-sqlite.connection.php">SQLite DSN</a></li>
6781     -<li><a class="reference external" href="http://php.net/manual/en/ref.pdo-mysql.connection.php">MySQL DSN</a></li>
6782     -<li><a class="reference external" href="http://www.php.net/manual/en/ref.pdo-pgsql.connection.php">PostgreSQL DSN</a></li>
6783     -</ul>
6784     -<p>for the most popular configuration choices. When a username/password is
6785     -required, using the appropriate variables <tt class="docutils literal">$dbUser</tt>/<tt class="docutils literal">$dbPassword</tt> is
6786     -preferred instead of embedding the values in the DSN string.</p>
6787     -<p>The directory <tt class="docutils literal">include/scripts/db/</tt> provides SQL initialization scripts for
6788     -SQLite, MySQL and PostgreSQL.</p>
6789     -</div>
6790     -<div class="section" id="php-setup">
6791     -<h2><a class="toc-backref" href="#id5">PHP setup</a></h2>
6792     -<p>The following parameters are <em>required</em> to be set in your <tt class="docutils literal">php.ini</tt>:</p>
6793     -<ul class="simple">
6794     -<li><tt class="docutils literal">date.timezone</tt>: must be set to your system preference.</li>
6795     -<li><tt class="docutils literal">session.auto_start</tt>: must be &quot;Off&quot;.</li>
6796     -</ul>
6797     -<p>The maximal upload limit is determined by several PHP configuration parameters.
6798     -Check your <tt class="docutils literal">php.ini</tt> for:</p>
6799     -<ul class="simple">
6800     -<li><tt class="docutils literal">upload_max_filesize</tt>: change as needed.</li>
6801     -<li><tt class="docutils literal">post_max_size</tt>: must be at least 1M larger than upload_max_filesize.</li>
6802     -<li><tt class="docutils literal">session.gc_maxlifetime</tt>: must be long enough to allow large uploads to finish.</li>
6803     -</ul>
6804     -<p>All the above settings can be configured per-directory and affect only DL. In
6805     -addition, the following parameters need to be set for the entire PHP server:</p>
6806     -<ul class="simple">
6807     -<li><tt class="docutils literal">file_uploads</tt>: must be &quot;On&quot;.</li>
6808     -<li><tt class="docutils literal">upload_tmp_dir</tt>: ensure enough space is available for temporary files.</li>
6809     -<li><tt class="docutils literal">max_file_uploads</tt>: change as needed.</li>
6810     -</ul>
6811     -<p>The upload limit as shown in the submission form is determined automatically
6812     -from the <tt class="docutils literal">upload_max_filesize</tt> parameter.</p>
6813     -<p>Any upload beyond <tt class="docutils literal">post_max_size</tt> will be completely ignored: users will get
6814     -a blank page instead of an error message. You should raise <tt class="docutils literal">post_max_size</tt>
6815     -above <tt class="docutils literal">upload_max_filesize</tt> to get an acceptable &quot;error window&quot; in old
6816     -browsers or browsers with JavaScript disabled.</p>
6817     -<p><tt class="docutils literal">session.gc_maxlifetime</tt> (which is in seconds) needs to be long enough for
6818     -your users to complete a large upload. Uploading 500MB on a slow ADSL
6819     -connection can take as much as 12 hours, so set it to <em>at least</em> 43200.</p>
6820     -<p>If PHP was built as an Apache module you can set per-directory parameters
6821     -through <tt class="docutils literal">.htaccess</tt> (see
6822     -<a class="reference external" href="http://www.php.net/manual/en/configuration.changes.php">http://www.php.net/manual/en/configuration.changes.php</a>) or directly inside your
6823     -Apache's configuration (see <a class="reference internal" href="#apache-mod-php">Apache/mod_php</a> for an example). The provided
6824     -<tt class="docutils literal"><span class="pre">htdocs/.htaccess</span></tt> contains a reasonable pre-set, but requires
6825     -<tt class="docutils literal">AllowOverride All</tt> to be set for the directory in your main configuration.</p>
6826     -</div>
6827     -<div class="section" id="user-setup">
6828     -<h2><a class="toc-backref" href="#id6">User setup</a></h2>
6829     -<p>DL can use both an internal and an external user database, by trusting the
6830     -authentication credentials provided by your web server.</p>
6831     -<p>dl supports both &quot;normal&quot; users and &quot;administrators&quot;. A normal user can only
6832     -see and manage tickets created by himself. Administrators can see/manage all
6833     -the tickets.</p>
6834     -<div class="section" id="internal-authentication">
6835     -<h3><a class="toc-backref" href="#id7">Internal authentication</a></h3>
6836     -<p>Once dl has been installed and PHP is set-up correctly, you have to create at
6837     -least one user to be able to log in. User management is handled through the
6838     -command line by using the bundled <tt class="docutils literal">useradmin.php</tt> utility.</p>
6839     -<p>On the server, execute the following commands <em>with the same user as your web
6840     -server</em> (by using <tt class="docutils literal">su</tt> or <tt class="docutils literal">sudo</tt> if necessary):</p>
6841     -<pre class="literal-block">
6842     -cd /your-installation-directory/include/scripts
6843     -php useradmin.php add &quot;admin&quot; &quot;true&quot; &quot;change me&quot;
6844     -</pre>
6845     -<p>where:</p>
6846     -<ul class="simple">
6847     -<li><tt class="docutils literal">admin</tt> is the user name</li>
6848     -<li><tt class="docutils literal">true</tt> (or <tt class="docutils literal">false</tt>) sets the administrator status</li>
6849     -<li><tt class="docutils literal">change me</tt> is the password</li>
6850     -</ul>
6851     -<p>Repeat as many times as necessary. You should now be able to use the web
6852     -service. Other users/administrators can be added through the web interface.</p>
6853     -</div>
6854     -<div class="section" id="external-authentication">
6855     -<h3><a class="toc-backref" href="#id8">External authentication</a></h3>
6856     -<p>External authentication should be the preferred form of authentication for
6857     -corporate use since it supports whatever authentication scheme your web server
6858     -already supports (for example, LDAP, ActiveDirectory, etc).</p>
6859     -<p>To enable external authentication you have to protect the two files:</p>
6860     -<ul class="simple">
6861     -<li><tt class="docutils literal">admin.php</tt></li>
6862     -<li><tt class="docutils literal">rest.php</tt></li>
6863     -</ul>
6864     -<p>using a &quot;Basic&quot; authentication scheme. You should then set <tt class="docutils literal">$authRealm</tt> to
6865     -the same authentication realm used in your web server. The other files <em>must
6866     -not</em> be protected.</p>
6867     -<p>DL will implicitly trust the credentials provided by the web server. All users
6868     -are logged in as &quot;normal&quot; by default. The only setup required is adding the
6869     -administrators with <tt class="docutils literal">useradmin.php</tt> without using any password.</p>
6870     -<p>Logout with HTTP authentication is not guaranteed to work: users should simply
6871     -<strong>close their browser</strong> to clear their session (closing a tab or window is not
6872     -enough in many browsers). Currently, logout works as expected on:</p>
6873     -<ul class="simple">
6874     -<li>Firefox</li>
6875     -<li>Safari</li>
6876     -<li>Google Chrome/Chromium</li>
6877     -</ul>
6878     -<p>Logout does not work on:</p>
6879     -<ul class="simple">
6880     -<li>Internet Explorer 7/8.</li>
6881     -<li>Opera 9/10.</li>
6882     -</ul>
6883     -<p>Again, only the <em>Basic</em> authentication is supported, which transmits the
6884     -password in clear-text unless you use SSL.</p>
6885     -<p>When using external authentication, the HTTP header <tt class="docutils literal">USER_EMAIL</tt> can
6886     -additionally provide the user's default email address. Such header is provided
6887     -automatically, for example, when using &quot;LemonLDAP::NG&quot;.</p>
6888     -</div>
6889     -</div>
6890     -<div class="section" id="large-file-support">
6891     -<h2><a class="toc-backref" href="#id9">Large file support</a></h2>
6892     -<p>Large file support (for uploads larger than 2GB) requires a combination of PHP
6893     -version, web server and browser support.</p>
6894     -<p>Apache 2.2 and above support large request bodies but needs to be built for
6895     -64bit (see <tt class="docutils literal">LimitRequestBody</tt>). Same for Lighttpd 1.4 (&gt;2gb but only for
6896     -64bit builds, see <tt class="docutils literal"><span class="pre">server.max-request-size</span></tt>).</p>
6897     -<p>Due to several bugs in PHP prior to 5.6, <tt class="docutils literal">upload_max_filesize</tt> and
6898     -<tt class="docutils literal">post_max_size</tt> are limited to a 31/32bit integer, which limits the upload
6899     -size to 2/4GB even on 64bit systems. The maximal uploadable sizes are shown
6900     -below:</p>
6901     -<table border="1" class="docutils">
6902     -<colgroup>
6903     -<col width="27%" />
6904     -<col width="73%" />
6905     -</colgroup>
6906     -<thead valign="bottom">
6907     -<tr><th class="head">PHP Version</th>
6908     -<th class="head">Upload limit</th>
6909     -</tr>
6910     -</thead>
6911     -<tbody valign="top">
6912     -<tr><td>&lt;5.4</td>
6913     -<td>2gb: <tt class="docutils literal">post_max_size = 2147483647</tt></td>
6914     -</tr>
6915     -<tr><td>5.4-5.5</td>
6916     -<td>4gb: <tt class="docutils literal">post_max_size = 4294967295</tt></td>
6917     -</tr>
6918     -<tr><td>&gt;=5.6</td>
6919     -<td>no limit</td>
6920     -</tr>
6921     -</tbody>
6922     -</table>
6923     -<p>Note that PHP versions before 5.5 are no longer supported, and older versions
6924     -are shown here for reference purposes only.</p>
6925     -<p>Finally, not all browsers support large file uploads:</p>
6926     -<table border="1" class="docutils">
6927     -<colgroup>
6928     -<col width="52%" />
6929     -<col width="48%" />
6930     -</colgroup>
6931     -<thead valign="bottom">
6932     -<tr><th class="head">Browser</th>
6933     -<th class="head">Upload limit</th>
6934     -</tr>
6935     -</thead>
6936     -<tbody valign="top">
6937     -<tr><td>IE &lt;= 8</td>
6938     -<td>2gb</td>
6939     -</tr>
6940     -<tr><td>IE &gt;= 9</td>
6941     -<td>no limit</td>
6942     -</tr>
6943     -<tr><td>Firefox &lt;= 16</td>
6944     -<td>2gb</td>
6945     -</tr>
6946     -<tr><td>Firefox &gt;= 17</td>
6947     -<td>no limit</td>
6948     -</tr>
6949     -<tr><td>Chrome</td>
6950     -<td>no limit</td>
6951     -</tr>
6952     -<tr><td>Opera &gt;= 10</td>
6953     -<td>no limit</td>
6954     -</tr>
6955     -</tbody>
6956     -</table>
6957     -<p>Sources:</p>
6958     -<ul class="simple">
6959     -<li><a class="reference external" href="http://www.motobit.com/help/scptutl/pa98.htm">http://www.motobit.com/help/scptutl/pa98.htm</a></li>
6960     -<li><a class="reference external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=215450">https://bugzilla.mozilla.org/show_bug.cgi?id=215450</a></li>
6961     -<li><a class="reference external" href="http://blogs.msdn.com/b/ieinternals/archive/2011/03/10/wininet-internet-explorer-file-download-and-upload-maximum-size-limits.aspx">http://blogs.msdn.com/b/ieinternals/archive/2011/03/10/wininet-internet-explorer-file-download-and-upload-maximum-size-limits.aspx</a></li>
6962     -</ul>
6963     -</div>
6964     -</div>
6965     -<div class="section" id="web-server-configuration">
6966     -<h1><a class="toc-backref" href="#id10">Web-server Configuration</a></h1>
6967     -<div class="section" id="apache-mod-php">
6968     -<h2><a class="toc-backref" href="#id11">Apache/mod_php</a></h2>
6969     -<p>With internal authentication:</p>
6970     -<pre class="literal-block">
6971     -&lt;Directory /your-installation-directory&gt;
6972     - AcceptPathInfo On
6973     - AllowOverride Limit
6974     - Options -Indexes
6975     - DirectoryIndex index.php index.html
6976     -&lt;/Directory&gt;
6977     -</pre>
6978     -<p>With external authentication:</p>
6979     -<pre class="literal-block">
6980     -&lt;Directory /your-installation-directory&gt;
6981     - # Normal DL configuration
6982     - AcceptPathInfo On
6983     - AllowOverride Limit
6984     - Options -Indexes
6985     - DirectoryIndex index.php index.html
6986     -
6987     - # Require a Basic authentication scheme for admin/rest.php
6988     - &lt;FilesMatch &quot;^(admin|rest)\.php$&quot;&gt;
6989     - # The scheme must be Basic
6990     - AuthType Basic
6991     - AuthName &quot;Restricted Area&quot;
6992     - Require valid-user
6993     - Satisfy any
6994     -
6995     - # You'll need to provide a valid source for passwords using either the
6996     - # following or some other authentication source (such as LDAP)
6997     - AuthBasicProvider file
6998     - AuthUserFile /path/to/passwd/file
6999     - &lt;/FilesMatch&gt;
7000     -&lt;/Directory&gt;
7001     -</pre>
7002     -<p>With LDAP or ActiveDirectory authentication:</p>
7003     -<pre class="literal-block">
7004     -&lt;Directory /your-installation-directory&gt;
7005     - # Normal DL configuration
7006     - AcceptPathInfo On
7007     - AllowOverride Limit
7008     - Options -Indexes
7009     - DirectoryIndex index.php index.html
7010     -
7011     - # Require a Basic authentication scheme for admin/rest.php
7012     - &lt;FilesMatch &quot;^(admin|rest)\.php$&quot;&gt;
7013     - # The scheme must be Basic
7014     - AuthType Basic
7015     - AuthName &quot;Restricted Area&quot;
7016     - Require valid-user
7017     - Satisfy any
7018     -
7019     - # Use the LDAP provider (just an example query)
7020     - AuthBasicProvider ldap
7021     - AuthzLDAPAuthoritative off
7022     - AuthLDAPURL ldap://XXXXXX:XXXX/ou=XXXX,dc=XXXX,dc=XXX?sAMAccountName?sub?(objectClass=*)
7023     - AuthLDAPBindDN &quot;cn=XXXX,ou=XXXXX,dc=XXX,dc=XXX&quot;
7024     - AuthLDAPBindPassword &quot;XXXXX&quot;
7025     - &lt;/FilesMatch&gt;
7026     -&lt;/Directory&gt;
7027     -</pre>
7028     -</div>
7029     -<div class="section" id="apache-fastcgi">
7030     -<h2><a class="toc-backref" href="#id12">Apache/FastCGI</a></h2>
7031     -<p>FastCGI support in Apache up to 2.2.x is severely lacking with all the
7032     -available modules: <tt class="docutils literal">mod_fcgi</tt>, <tt class="docutils literal">mod_fcgid</tt> (now merged officially into
7033     -Apache's <tt class="docutils literal">mod_fcgi</tt>) and <tt class="docutils literal">mod_fastcgi</tt>.</p>
7034     -<ul class="simple">
7035     -<li><tt class="docutils literal">mod_fcgi</tt> and <tt class="docutils literal">mod_fcgid</tt> buffer the entire request in memory before
7036     -handing-off the request to PHP, meaning that the maximal upload limit is
7037     -bound to your available memory at the time of the request, independently of
7038     -how PHP is setup. This is a known, old <a class="reference external" href="http://sourceforge.net/mailarchive/forum.php?thread_name=48485BDC.1020204&#64;oxeva.fr&amp;forum_name=mod-fcgid-users">bug</a> that's still present in both
7039     -<tt class="docutils literal">mod_fcgi</tt> 2.2.14 and <tt class="docutils literal">mod_fcgid</tt> 2.3.4. There is no known work-around:
7040     -either use <tt class="docutils literal">mod_php</tt> or use a different server.</li>
7041     -<li><tt class="docutils literal">mod_fastcgi</tt> has been proved to be slow (and sometimes unstable) in most
7042     -configurations. It is not advisable to use PHP with <tt class="docutils literal">mod_fastcgi</tt>.</li>
7043     -</ul>
7044     -<p>For the REST service to work, independently of the authentication method,
7045     -<tt class="docutils literal">mod_rewrite</tt> needs to be enabled and configured as follows:</p>
7046     -<pre class="literal-block">
7047     -&lt;Directory /your-installation-directory&gt;
7048     - # Normal DL configuration
7049     - AcceptPathInfo On
7050     - AllowOverride Limit
7051     - Options -Indexes
7052     - DirectoryIndex index.php index.html
7053     -
7054     - &lt;FilesMatch &quot;^(admin|rest)\.php$&quot;&gt;
7055     - # Forward the credentials for the PHP process
7056     - RewriteEngine on
7057     - RewriteCond %{HTTP:Authorization} ^(.*)
7058     - RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
7059     - &lt;/FilesMatch&gt;
7060     -&lt;/Directory&gt;
7061     -</pre>
7062     -<p>This is required to correctly pass the <tt class="docutils literal">Authorization</tt> header to the PHP
7063     -process.</p>
7064     -<p>If you want to enable HTTP/External authentication, just add the usual
7065     -authorization configuration as well:</p>
7066     -<pre class="literal-block">
7067     -&lt;Directory /your-installation-directory&gt;
7068     - # Normal DL configuration
7069     - AcceptPathInfo On
7070     - AllowOverride Limit
7071     - Options -Indexes
7072     - DirectoryIndex index.php index.html
7073     - &lt;FilesMatch &quot;^(admin|rest)\.php$&quot;&gt;
7074     - # Forward the credentials for the PHP process
7075     - RewriteEngine on
7076     - RewriteCond %{HTTP:Authorization} ^(.*)
7077     - RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
7078     -
7079     - # Require a Basic authentication scheme for admin/rest.php
7080     - AuthType Basic
7081     - AuthName &quot;Restricted Area&quot;
7082     - ...
7083     - Require valid-user
7084     - &lt;/FilesMatch&gt;
7085     -&lt;/Directory&gt;
7086     -</pre>
7087     -</div>
7088     -<div class="section" id="lighttpd-fastcgi">
7089     -<h2><a class="toc-backref" href="#id13">Lighttpd/FastCGI</a></h2>
7090     -<p>PHP/FastCGI works fine with Lighttpd 1.4.x without any special setup. The
7091     -following configuration is required to protect the include directories:</p>
7092     -<pre class="literal-block">
7093     -$HTTP[&quot;url&quot;] =~ &quot;^/dl(?:/|/.*/)include/&quot; {
7094     - url.access-deny = ( &quot;&quot; )
7095     -}
7096     -</pre>
7097     -<p>You can also enable external authentication with the following:</p>
7098     -<pre class="literal-block">
7099     -$HTTP[&quot;url&quot;] =~ &quot;^/dl/(?:admin|rest)\.php$&quot; {
7100     - auth.require += ( &quot;&quot; =&gt; (
7101     - &quot;method&quot; =&gt; &quot;basic&quot;,
7102     - &quot;realm&quot; =&gt; &quot;Restricted Area&quot;,
7103     - &quot;require&quot; =&gt; &quot;valid-user&quot;
7104     - ) )
7105     -}
7106     -</pre>
7107     -</div>
7108     -<div class="section" id="nginx-fastcgi">
7109     -<h2><a class="toc-backref" href="#id14">Nginx/FastCGI</a></h2>
7110     -<p>Nginx in combination with PHP/FastCGI works fine but needs special configuration to
7111     -setup <tt class="docutils literal">PATH_INFO</tt> correctly. Here is an example configuration with DL
7112     -installed as a subdirectory in the document root:</p>
7113     -<pre class="literal-block">
7114     -location ^~ /dl {
7115     - # Protect the include directories
7116     - location ~ ^/dl(?:/|/.*/)include {
7117     - deny all;
7118     - }
7119     -
7120     - index index.php index.html;
7121     - try_files $uri $uri/ =404;
7122     -
7123     - # Enable PHP
7124     - location ~ \.php(?:$|/) {
7125     - include fastcgi_params;
7126     -
7127     - # Set maximum body size (should be the same as PHP's post_max_size)
7128     - client_max_body_size 512M;
7129     -
7130     - # Setup PATH_INFO (http://trac.nginx.org/nginx/ticket/321)
7131     - fastcgi_split_path_info ^(.+\.php)(/.+)$;
7132     - set $path_info $fastcgi_path_info;
7133     - fastcgi_param PATH_INFO $path_info;
7134     -
7135     - try_files $fastcgi_script_name =404;
7136     -
7137     - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
7138     - fastcgi_index index.php;
7139     - fastcgi_pass unix:/var/run/php5-fpm.sock;
7140     - }
7141     -}
7142     -</pre>
7143     -</div>
7144     -</div>
7145     -<div class="section" id="ticket-expiration">
7146     -<h1><a class="toc-backref" href="#id15">Ticket expiration</a></h1>
7147     -<p>Ticket expiration can be either performed internally to DL (the default), or by
7148     -using the external <tt class="docutils literal">include/scripts/expire.php</tt> utility with a cron job. This
7149     -preference can be set by controlling the <tt class="docutils literal">$gcInternal</tt> parameter.</p>
7150     -<p>The internal method requires no setup, but the external method has the added
7151     -advantage of not interrupting the web interface during the expiration process,
7152     -and also ensures that the spool is emptied when DL itself is not used actively.</p>
7153     -<div class="section" id="internal-method">
7154     -<h2><a class="toc-backref" href="#id16">Internal method</a></h2>
7155     -<p>Expiration is usually performed aggressively at every page request. You can
7156     -control this behavior (thus reducing the DB pressure) by tuning the
7157     -<tt class="docutils literal">$gcProbability</tt> and <tt class="docutils literal">$gcLimit</tt> parameters.</p>
7158     -<p>If you notice too much load on your DB, start by lowering <tt class="docutils literal">$gcProbability</tt> to
7159     -0.5 and set <tt class="docutils literal">$gcLimit</tt> to roughly the number of active tickets currently
7160     -present in your DB.</p>
7161     -<p>Continue to lower <tt class="docutils literal">$gcProbability</tt> even further until the load becomes
7162     -acceptable. When the load is acceptable, but queries take too long, reduce
7163     -<tt class="docutils literal">$gcLimit</tt>.</p>
7164     -</div>
7165     -<div class="section" id="external-method">
7166     -<h2><a class="toc-backref" href="#id17">External method</a></h2>
7167     -<p>Simply call <tt class="docutils literal">include/scripts/expire.php</tt> within a cron job, which should be
7168     -executed with <em>the same user as the web server</em>. Executing the script once a
7169     -day is sufficient for low traffic websites, but can be executed as often as
7170     -needed. <tt class="docutils literal">$gcLimit</tt> still controls how many tickets are expired for each run
7171     -to limit the execution time.</p>
7172     -</div>
7173     -</div>
7174     -<div class="section" id="upgrading-from-an-earlier-version">
7175     -<h1><a class="toc-backref" href="#id18">Upgrading from an earlier version</a></h1>
7176     -<ul>
7177     -<li><p class="first">Backup your current <tt class="docutils literal">config.php</tt> file and spool directory.</p>
7178     -</li>
7179     -<li><p class="first">Overwrite the DL installation directory with the new copy.</p>
7180     -</li>
7181     -<li><p class="first">Either copy over the old <tt class="docutils literal">config.php</tt> file or customize the new version.</p>
7182     -</li>
7183     -<li><p class="first">Run <tt class="docutils literal">dbupgrade.php</tt> as your web server user:</p>
7184     -<pre class="literal-block">
7185     -cd /your-installation-directory/include/scripts
7186     -php dbupgrade.php
7187     -</pre>
7188     -</li>
7189     -<li><p class="first">Test your new setup.</p>
7190     -</li>
7191     -</ul>
7192     -</div>
7193     -<div class="section" id="internationalization-support">
7194     -<h1><a class="toc-backref" href="#id19">Internationalization support</a></h1>
7195     -<p>DL has been translated in several languages and will attempt to detect the
7196     -correct locale of the browser and use it automatically when available. If no
7197     -matching translation can be found, a default will be used, which is configured
7198     -to be English in the main distribution. The user can however switch the
7199     -language anytime.</p>
7200     -<p>Adding a new translation is easy for anyone familiar with the <cite>gettext</cite> tools:
7201     -you don't need programming knowledge. If you want to contribute a new language,
7202     -or suggest a better translation, we recommend to subscribe to the mailing list
7203     -and ask for guidance. We really appreciate your help.</p>
7204     -<div class="section" id="contributing-updating-a-translation">
7205     -<h2><a class="toc-backref" href="#id20">Contributing/updating a translation</a></h2>
7206     -<p>Contributing a new translation is easy enough:</p>
7207     -<ul>
7208     -<li><p class="first">Edit <tt class="docutils literal">htdocs/include/lang.php</tt> and add your new language name and alias to
7209     -<tt class="docutils literal">$langData</tt>, as done for the other languages.</p>
7210     -</li>
7211     -<li><p class="first">Execute:</p>
7212     -<pre class="literal-block">
7213     -cd htdocs/include/scripts/
7214     -./langgen.php
7215     -</pre>
7216     -<p>to freshen the strings to be translated.</p>
7217     -</li>
7218     -<li><p class="first">Translate the generated <tt class="docutils literal">messages.po</tt> in the directory
7219     -<tt class="docutils literal"><span class="pre">htdocs/include/locale/&lt;locale_NAME&gt;/LC_MESSAGES/</span></tt> using a text editor, or
7220     -by using <a class="reference external" href="http://poedit.sourceforge.net/">PoEdit</a>, or any other &quot;po&quot; editing tool.</p>
7221     -</li>
7222     -<li><p class="first">Optionally translate the user guide, which is located in
7223     -<tt class="docutils literal">htdocs/include/static/guide/</tt>.</p>
7224     -<p>Copy the english directory tree into a new tree with the new locale name and
7225     -translate <tt class="docutils literal">index.rst</tt>. <tt class="docutils literal">index.html</tt> is regenerated automatically.</p>
7226     -</li>
7227     -<li><p class="first">To test/update the translations run <tt class="docutils literal">langupd.php</tt>:</p>
7228     -<pre class="literal-block">
7229     -cd htdocs/include/scripts/
7230     -./langupd.php
7231     -</pre>
7232     -</li>
7233     -</ul>
7234     -</div>
7235     -</div>
7236     -<div class="section" id="usage">
7237     -<h1><a class="toc-backref" href="#id21">Usage</a></h1>
7238     -<p>DL should be usable by users without any training. The web interface must be
7239     -self-explanatory. If you find the usage to be difficult or that the interface
7240     -could be improved, <strong>it's a bug</strong>. Please let us know.</p>
7241     -<div class="section" id="command-line-client-dl-cli">
7242     -<h2><a class="toc-backref" href="#id22">Command-line client: <tt class="docutils literal"><span class="pre">dl-cli</span></tt></a></h2>
7243     -<p>A command-line client to the REST interface is included in the distribution in
7244     -<tt class="docutils literal"><span class="pre">client/dl-cli.py</span></tt>. This client requires a simple text configuration file, by
7245     -default stored in <tt class="docutils literal"><span class="pre">~/.dl.rc</span></tt>, containing the following values:</p>
7246     -<ul class="simple">
7247     -<li>url: REST URL of the service</li>
7248     -<li>user: your user name</li>
7249     -<li>pass (optional): your password (if not specified, you will be prompted for it
7250     -by the client)</li>
7251     -<li>passcmd (optional): invoke the supplied command to obtain the password</li>
7252     -<li>verify (optional): &quot;true&quot; or &quot;false&quot;: enable/disable SSL verification
7253     -(might be required for testing, but defaults to true)</li>
7254     -<li>email (optional): default email address for grant notifications</li>
7255     -<li>fingerprint: Validate the server against the specified certificate or
7256     -fingerprint (See <a class="reference internal" href="#public-key-pinning">Public key pinning</a>).</li>
7257     -</ul>
7258     -<p>An example:</p>
7259     -<pre class="literal-block">
7260     -url=https://dl.example.com/rest.php
7261     -user=test
7262     -pass=test
7263     -</pre>
7264     -<p>Simply run the command with no arguments to see usage information. At least
7265     -Python 2.7 is required (with Python 3+ being recommended), with the &quot;PycURL&quot;
7266     -and &quot;ConfigObj&quot; modules installed. Under Debian/Ubuntu systems you can install
7267     -the required dependencies by doing the following:</p>
7268     -<pre class="literal-block">
7269     -sudo apt-get install python3-pycurl python3-configobj
7270     -</pre>
7271     -</div>
7272     -<div class="section" id="graphical-client-dl-wx">
7273     -<h2><a class="toc-backref" href="#id23">Graphical client: <tt class="docutils literal"><span class="pre">dl-wx</span></tt></a></h2>
7274     -<p>A graphical client is also included in the distribution, which allows to create
7275     -tickets easily from the system's taskbar. The client can be run by executing
7276     -<tt class="docutils literal"><span class="pre">client/dl-wx/dl-wx.py</span></tt> or by downloading an <a class="reference external" href="https://www.thregr.org/~wavexx/software/dl/dl-wx.html">executable client</a>.</p>
7277     -<p>Upon first execution the user will be prompted for the basic configuration.
7278     -After that all DL functions can be operated through the taskbar icon:</p>
7279     -<ul class="simple">
7280     -<li>Left-clicking on the taskbar will create a new ticket using the default
7281     -settings.</li>
7282     -<li>Right-clicking allows to select different actions.</li>
7283     -<li>On OSX, you can drop files directly on the dock.</li>
7284     -</ul>
7285     -<p>At least Python 2.7 is required, with the &quot;ConfigObj&quot;, &quot;PycURL&quot; and &quot;wxPython&quot;
7286     -modules installed. Under Debian/Ubuntu systems you can install the required
7287     -dependencies by doing the following:</p>
7288     -<pre class="literal-block">
7289     -sudo apt-get install python-pycurl python-configobj python-wxgtk2.8
7290     -</pre>
7291     -<p><tt class="docutils literal"><span class="pre">dl-cli</span></tt> and <tt class="docutils literal"><span class="pre">dl-wx</span></tt> share the same configuration file, so both can be used
7292     -interchangeably.</p>
7293     -<p>A <tt class="docutils literal"><span class="pre">dl-wx</span></tt> pre-built binary is also available online on the <a class="reference external" href="https://www.thregr.org/~wavexx/software/dl/dl-wx.html">dl-wx</a> page, which
7294     -includes installation instructions and a simple tutorial.</p>
7295     -</div>
7296     -<div class="section" id="public-key-pinning">
7297     -<h2><a class="toc-backref" href="#id24">Public key pinning</a></h2>
7298     -<p>The <cite>fingerprint</cite> option in the <tt class="docutils literal"><span class="pre">~/.dl.rc</span></tt> configuration file implements
7299     -public key pinning, and supports any value directly accepted by <a class="reference external" href="https://curl.haxx.se/libcurl/c/CURLOPT_PINNEDPUBLICKEY.html">cURL</a>.</p>
7300     -<p>It can be a path to a DER/PEM certificate file, or a SHA256 hash of the public
7301     -key of the host. The hash can be either a hex-encoded string (with optional
7302     -colon separators), or a string starting with <tt class="docutils literal">sha256//</tt> and followed by a
7303     -base64-encoded value of the hash.</p>
7304     -<p>The quickest way to obtain the fingerprint is to use curl directly:</p>
7305     -<pre class="literal-block">
7306     -curl -vkI --pinnedpubkey 'sha256//' https://example.com/
7307     -</pre>
7308     -<p>Look for the &quot;public key hash&quot; in the generated output.</p>
7309     -</div>
7310     -<div class="section" id="thunderbird-integration">
7311     -<h2><a class="toc-backref" href="#id25">Thunderbird integration</a></h2>
7312     -<p>The bundled extension &quot;Thunderbird-Filelink-DL&quot; integrates with the new
7313     -Thunderbird's <a class="reference external" href="https://support.mozillamessaging.com/en-US/kb/filelink-large-attachments">Filelink</a> functionality, by using the REST service provided by DL
7314     -0.10 and onward. The extension allows to convert large attachments to links
7315     -automatically, directly within the Composer window.</p>
7316     -<p>The extension also allows the user to generate/insert a new upload grant in the
7317     -current message from the composer window. Both a menu command (under &quot;Tools&quot; ..
7318     -&quot;Insert upload grant&quot;) and a toolbar item (that you manually need to drag in
7319     -the composer toolbar) are provided.</p>
7320     -<p>To install the extension, go to Thunderbird's &quot;Tools&quot; .. &quot;Addons&quot; menu, and
7321     -click on the &quot;Settings&quot; icon just next to the search bar. Select &quot;Install
7322     -Add-on from file...&quot; and choose the file <tt class="docutils literal"><span class="pre">client/thunderbird-filelink-dl.xpi</span></tt>
7323     -as provided in the distribution.</p>
7324     -<p>See full installation and usage instructions on the <a class="reference external" href="https://www.thregr.org/~wavexx/software/dl/thunderbird.html">extension</a> web page.</p>
7325     -</div>
7326     -</div>
7327     -<div class="section" id="general-support-mailing-list">
7328     -<h1><a class="toc-backref" href="#id26">General/support mailing list</a></h1>
7329     -<dl class="docutils">
7330     -<dt>&lt;<a class="reference external" href="mailto:dl-ticket-service&#64;thregr.org">dl-ticket-service&#64;thregr.org</a>&gt;:</dt>
7331     -<dd>Go-to list for general discussions, troubleshooting and suggestions. You can
7332     -subscribe to <cite>dl-ticket-service</cite> by either sending an empty email to
7333     -&lt;<a class="reference external" href="mailto:dl-ticket-service+subscribe&#64;thregr.org">dl-ticket-service+subscribe&#64;thregr.org</a>&gt; or by using <a class="reference external" href="http://www.gmane.org/">GMane</a> (group
7334     -&quot;gmane.comp.web.dl-ticket-service.general&quot;). The archives are accessible via
7335     -web through <a class="reference external" href="https://www.mail-archive.com/dl-ticket-service&#64;thregr.org/">https://www.mail-archive.com/dl-ticket-service&#64;thregr.org/</a> or
7336     -via news directly.</dd>
7337     -<dt>&lt;<a class="reference external" href="mailto:dl-announces&#64;thregr.org">dl-announces&#64;thregr.org</a>&gt;:</dt>
7338     -<dd>DL release (and release candidate) announcements (<em>read-only</em> list). Very low
7339     -traffic. To subscribe, send an email to &lt;<a class="reference external" href="mailto:dl-announces+subscribe&#64;thregr.org">dl-announces+subscribe&#64;thregr.org</a>&gt;.</dd>
7340     -<dt>&lt;<a class="reference external" href="mailto:dl-translators&#64;thregr.org">dl-translators&#64;thregr.org</a>&gt;:</dt>
7341     -<dd>Mailing list reserved for translators coordination.</dd>
7342     -</dl>
7343     -<p>You can contact the main author directly at &lt;<a class="reference external" href="mailto:wavexx&#64;thregr.org">wavexx&#64;thregr.org</a>&gt;, though using
7344     -the general list is encouraged.</p>
7345     -</div>
7346     -<div class="section" id="customisation-and-development">
7347     -<h1><a class="toc-backref" href="#id27">Customisation and development</a></h1>
7348     -<p>You are encouraged to change DL as you see fit under the terms of the GNU GPL 2
7349     -license, or (at your option) any later version. DL's GIT repository is publicly
7350     -accessible at:</p>
7351     -<blockquote>
7352     -<a class="reference external" href="https://github.com/DownloadTicketService/dl">https://github.com/DownloadTicketService/dl</a></blockquote>
7353     -<p>or at <tt class="docutils literal"><span class="pre">git://src.thregr.org/dl</span></tt></p>
7354     -<div class="section" id="development-releases">
7355     -<h2><a class="toc-backref" href="#id28">Development releases</a></h2>
7356     -<p>Development releases directly downloaded from git do not include pre-processed
7357     -files. To build the localization data <cite>gettext</cite> and <a class="reference external" href="http://docutils.sourceforge.net/">docutils</a> need to be
7358     -installed. You'll then need to execute:</p>
7359     -<pre class="literal-block">
7360     -cd htdocs/include/scripts/
7361     -./langupd.php
7362     -</pre>
7363     -<p>To build the Thunderbird add-on, the Thunderbird SDK needs to be installed as
7364     -well. You might need to change the paths inside
7365     -<tt class="docutils literal"><span class="pre">client/thunderbird-filelink-dl/config_build.sh</span></tt> (which is tuned for Debian's
7366     -<tt class="docutils literal"><span class="pre">thunderbird-dev</span></tt> package) and execute:</p>
7367     -<pre class="literal-block">
7368     -cd client/thunderbird-filelink-dl/
7369     -./build.sh
7370     -</pre>
7371     -<p>Database schema changes are <em>not</em> gracefully handled while following a
7372     -development release. Do not run development releases on a production
7373     -environment.</p>
7374     -</div>
7375     -</div>
7376     -<div class="section" id="authors-and-copyright">
7377     -<h1><a class="toc-backref" href="#id29">Authors and Copyright</a></h1>
7378     -<p>&quot;dl&quot; can be found at <a class="reference external" href="https://www.thregr.org/~wavexx/software/dl/">https://www.thregr.org/~wavexx/software/dl/</a></p>
7379     -<div class="line-block">
7380     -<div class="line">&quot;dl&quot; is distributed under GNU GPLv2+, WITHOUT ANY WARRANTY.</div>
7381     -<div class="line">Copyright(c) 2007-2017 by Yuri D'Elia &lt;<a class="reference external" href="mailto:wavexx&#64;thregr.org">wavexx&#64;thregr.org</a>&gt;.</div>
7382     -</div>
7383     -<p>dl's GIT repository is publicly accessible at:</p>
7384     -<blockquote>
7385     -<a class="reference external" href="https://github.com/DownloadTicketService/dl">https://github.com/DownloadTicketService/dl</a></blockquote>
7386     -<p>or at <tt class="docutils literal"><span class="pre">git://src.thregr.org/dl</span></tt></p>
7387     -</div>
7388     -</div>
7389     -</body>
7390     -</html>
7391     diff -Nur dl-0.18.1/README.rst dl-master/README.rst
7392     --- dl-0.18.1/README.rst 2017-09-06 12:08:38.000000000 -0400
7393     +++ dl-master/README.rst 2021-03-16 18:59:58.000000000 -0400
7394     @@ -302,7 +302,6 @@
7395     AuthType Basic
7396     AuthName "Restricted Area"
7397     Require valid-user
7398     - Satisfy any
7399    
7400     # You'll need to provide a valid source for passwords using either the
7401     # following or some other authentication source (such as LDAP)
7402     @@ -326,7 +325,6 @@
7403     AuthType Basic
7404     AuthName "Restricted Area"
7405     Require valid-user
7406     - Satisfy any
7407    
7408     # Use the LDAP provider (just an example query)
7409     AuthBasicProvider ldap
7410     @@ -697,7 +695,7 @@
7411     You can contact the main author directly at <wavexx@thregr.org>, though using
7412     the general list is encouraged.
7413    
7414     -.. _GMane: http://www.gmane.org/
7415     +.. _GMane: https://news.gmane.io/
7416    
7417    
7418     Customisation and development
7419     diff -Nur dl-0.18.1/RESTAPI.html dl-master/RESTAPI.html
7420     --- dl-0.18.1/RESTAPI.html 2017-09-06 12:09:40.000000000 -0400
7421     +++ dl-master/RESTAPI.html 1969-12-31 19:00:00.000000000 -0500
7422     @@ -1,656 +0,0 @@
7423     -<?xml version="1.0" encoding="utf-8" ?>
7424     -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
7425     -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7426     -<head>
7427     -<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7428     -<meta name="generator" content="Docutils 0.13.1: http://docutils.sourceforge.net/" />
7429     -<title>DL REST API</title>
7430     -<style type="text/css">
7431     -
7432     -/*
7433     -:Author: David Goodger (goodger@python.org)
7434     -:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
7435     -:Copyright: This stylesheet has been placed in the public domain.
7436     -
7437     -Default cascading style sheet for the HTML output of Docutils.
7438     -
7439     -See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
7440     -customize this style sheet.
7441     -*/
7442     -
7443     -/* used to remove borders from tables and images */
7444     -.borderless, table.borderless td, table.borderless th {
7445     - border: 0 }
7446     -
7447     -table.borderless td, table.borderless th {
7448     - /* Override padding for "table.docutils td" with "! important".
7449     - The right padding separates the table cells. */
7450     - padding: 0 0.5em 0 0 ! important }
7451     -
7452     -.first {
7453     - /* Override more specific margin styles with "! important". */
7454     - margin-top: 0 ! important }
7455     -
7456     -.last, .with-subtitle {
7457     - margin-bottom: 0 ! important }
7458     -
7459     -.hidden {
7460     - display: none }
7461     -
7462     -.subscript {
7463     - vertical-align: sub;
7464     - font-size: smaller }
7465     -
7466     -.superscript {
7467     - vertical-align: super;
7468     - font-size: smaller }
7469     -
7470     -a.toc-backref {
7471     - text-decoration: none ;
7472     - color: black }
7473     -
7474     -blockquote.epigraph {
7475     - margin: 2em 5em ; }
7476     -
7477     -dl.docutils dd {
7478     - margin-bottom: 0.5em }
7479     -
7480     -object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
7481     - overflow: hidden;
7482     -}
7483     -
7484     -/* Uncomment (and remove this text!) to get bold-faced definition list terms
7485     -dl.docutils dt {
7486     - font-weight: bold }
7487     -*/
7488     -
7489     -div.abstract {
7490     - margin: 2em 5em }
7491     -
7492     -div.abstract p.topic-title {
7493     - font-weight: bold ;
7494     - text-align: center }
7495     -
7496     -div.admonition, div.attention, div.caution, div.danger, div.error,
7497     -div.hint, div.important, div.note, div.tip, div.warning {
7498     - margin: 2em ;
7499     - border: medium outset ;
7500     - padding: 1em }
7501     -
7502     -div.admonition p.admonition-title, div.hint p.admonition-title,
7503     -div.important p.admonition-title, div.note p.admonition-title,
7504     -div.tip p.admonition-title {
7505     - font-weight: bold ;
7506     - font-family: sans-serif }
7507     -
7508     -div.attention p.admonition-title, div.caution p.admonition-title,
7509     -div.danger p.admonition-title, div.error p.admonition-title,
7510     -div.warning p.admonition-title, .code .error {
7511     - color: red ;
7512     - font-weight: bold ;
7513     - font-family: sans-serif }
7514     -
7515     -/* Uncomment (and remove this text!) to get reduced vertical space in
7516     - compound paragraphs.
7517     -div.compound .compound-first, div.compound .compound-middle {
7518     - margin-bottom: 0.5em }
7519     -
7520     -div.compound .compound-last, div.compound .compound-middle {
7521     - margin-top: 0.5em }
7522     -*/
7523     -
7524     -div.dedication {
7525     - margin: 2em 5em ;
7526     - text-align: center ;
7527     - font-style: italic }
7528     -
7529     -div.dedication p.topic-title {
7530     - font-weight: bold ;
7531     - font-style: normal }
7532     -
7533     -div.figure {
7534     - margin-left: 2em ;
7535     - margin-right: 2em }
7536     -
7537     -div.footer, div.header {
7538     - clear: both;
7539     - font-size: smaller }
7540     -
7541     -div.line-block {
7542     - display: block ;
7543     - margin-top: 1em ;
7544     - margin-bottom: 1em }
7545     -
7546     -div.line-block div.line-block {
7547     - margin-top: 0 ;
7548     - margin-bottom: 0 ;
7549     - margin-left: 1.5em }
7550     -
7551     -div.sidebar {
7552     - margin: 0 0 0.5em 1em ;
7553     - border: medium outset ;
7554     - padding: 1em ;
7555     - background-color: #ffffee ;
7556     - width: 40% ;
7557     - float: right ;
7558     - clear: right }
7559     -
7560     -div.sidebar p.rubric {
7561     - font-family: sans-serif ;
7562     - font-size: medium }
7563     -
7564     -div.system-messages {
7565     - margin: 5em }
7566     -
7567     -div.system-messages h1 {
7568     - color: red }
7569     -
7570     -div.system-message {
7571     - border: medium outset ;
7572     - padding: 1em }
7573     -
7574     -div.system-message p.system-message-title {
7575     - color: red ;
7576     - font-weight: bold }
7577     -
7578     -div.topic {
7579     - margin: 2em }
7580     -
7581     -h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
7582     -h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
7583     - margin-top: 0.4em }
7584     -
7585     -h1.title {
7586     - text-align: center }
7587     -
7588     -h2.subtitle {
7589     - text-align: center }
7590     -
7591     -hr.docutils {
7592     - width: 75% }
7593     -
7594     -img.align-left, .figure.align-left, object.align-left, table.align-left {
7595     - clear: left ;
7596     - float: left ;
7597     - margin-right: 1em }
7598     -
7599     -img.align-right, .figure.align-right, object.align-right, table.align-right {
7600     - clear: right ;
7601     - float: right ;
7602     - margin-left: 1em }
7603     -
7604     -img.align-center, .figure.align-center, object.align-center {
7605     - display: block;
7606     - margin-left: auto;
7607     - margin-right: auto;
7608     -}
7609     -
7610     -table.align-center {
7611     - margin-left: auto;
7612     - margin-right: auto;
7613     -}
7614     -
7615     -.align-left {
7616     - text-align: left }
7617     -
7618     -.align-center {
7619     - clear: both ;
7620     - text-align: center }
7621     -
7622     -.align-right {
7623     - text-align: right }
7624     -
7625     -/* reset inner alignment in figures */
7626     -div.align-right {
7627     - text-align: inherit }
7628     -
7629     -/* div.align-center * { */
7630     -/* text-align: left } */
7631     -
7632     -.align-top {
7633     - vertical-align: top }
7634     -
7635     -.align-middle {
7636     - vertical-align: middle }
7637     -
7638     -.align-bottom {
7639     - vertical-align: bottom }
7640     -
7641     -ol.simple, ul.simple {
7642     - margin-bottom: 1em }
7643     -
7644     -ol.arabic {
7645     - list-style: decimal }
7646     -
7647     -ol.loweralpha {
7648     - list-style: lower-alpha }
7649     -
7650     -ol.upperalpha {
7651     - list-style: upper-alpha }
7652     -
7653     -ol.lowerroman {
7654     - list-style: lower-roman }
7655     -
7656     -ol.upperroman {
7657     - list-style: upper-roman }
7658     -
7659     -p.attribution {
7660     - text-align: right ;
7661     - margin-left: 50% }
7662     -
7663     -p.caption {
7664     - font-style: italic }
7665     -
7666     -p.credits {
7667     - font-style: italic ;
7668     - font-size: smaller }
7669     -
7670     -p.label {
7671     - white-space: nowrap }
7672     -
7673     -p.rubric {
7674     - font-weight: bold ;
7675     - font-size: larger ;
7676     - color: maroon ;
7677     - text-align: center }
7678     -
7679     -p.sidebar-title {
7680     - font-family: sans-serif ;
7681     - font-weight: bold ;
7682     - font-size: larger }
7683     -
7684     -p.sidebar-subtitle {
7685     - font-family: sans-serif ;
7686     - font-weight: bold }
7687     -
7688     -p.topic-title {
7689     - font-weight: bold }
7690     -
7691     -pre.address {
7692     - margin-bottom: 0 ;
7693     - margin-top: 0 ;
7694     - font: inherit }
7695     -
7696     -pre.literal-block, pre.doctest-block, pre.math, pre.code {
7697     - margin-left: 2em ;
7698     - margin-right: 2em }
7699     -
7700     -pre.code .ln { color: grey; } /* line numbers */
7701     -pre.code, code { background-color: #eeeeee }
7702     -pre.code .comment, code .comment { color: #5C6576 }
7703     -pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
7704     -pre.code .literal.string, code .literal.string { color: #0C5404 }
7705     -pre.code .name.builtin, code .name.builtin { color: #352B84 }
7706     -pre.code .deleted, code .deleted { background-color: #DEB0A1}
7707     -pre.code .inserted, code .inserted { background-color: #A3D289}
7708     -
7709     -span.classifier {
7710     - font-family: sans-serif ;
7711     - font-style: oblique }
7712     -
7713     -span.classifier-delimiter {
7714     - font-family: sans-serif ;
7715     - font-weight: bold }
7716     -
7717     -span.interpreted {
7718     - font-family: sans-serif }
7719     -
7720     -span.option {
7721     - white-space: nowrap }
7722     -
7723     -span.pre {
7724     - white-space: pre }
7725     -
7726     -span.problematic {
7727     - color: red }
7728     -
7729     -span.section-subtitle {
7730     - /* font-size relative to parent (h1..h6 element) */
7731     - font-size: 80% }
7732     -
7733     -table.citation {
7734     - border-left: solid 1px gray;
7735     - margin-left: 1px }
7736     -
7737     -table.docinfo {
7738     - margin: 2em 4em }
7739     -
7740     -table.docutils {
7741     - margin-top: 0.5em ;
7742     - margin-bottom: 0.5em }
7743     -
7744     -table.footnote {
7745     - border-left: solid 1px black;
7746     - margin-left: 1px }
7747     -
7748     -table.docutils td, table.docutils th,
7749     -table.docinfo td, table.docinfo th {
7750     - padding-left: 0.5em ;
7751     - padding-right: 0.5em ;
7752     - vertical-align: top }
7753     -
7754     -table.docutils th.field-name, table.docinfo th.docinfo-name {
7755     - font-weight: bold ;
7756     - text-align: left ;
7757     - white-space: nowrap ;
7758     - padding-left: 0 }
7759     -
7760     -/* "booktabs" style (no vertical lines) */
7761     -table.docutils.booktabs {
7762     - border: 0px;
7763     - border-top: 2px solid;
7764     - border-bottom: 2px solid;
7765     - border-collapse: collapse;
7766     -}
7767     -table.docutils.booktabs * {
7768     - border: 0px;
7769     -}
7770     -table.docutils.booktabs th {
7771     - border-bottom: thin solid;
7772     - text-align: left;
7773     -}
7774     -
7775     -h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
7776     -h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
7777     - font-size: 100% }
7778     -
7779     -ul.auto-toc {
7780     - list-style-type: none }
7781     -
7782     -</style>
7783     -</head>
7784     -<body>
7785     -<div class="document" id="dl-rest-api">
7786     -<h1 class="title">DL REST API</h1>
7787     -
7788     -<div class="contents topic" id="contents">
7789     -<p class="topic-title first">Contents</p>
7790     -<ul class="simple">
7791     -<li><a class="reference internal" href="#outline-of-the-api" id="id1">Outline of the API</a></li>
7792     -<li><a class="reference internal" href="#available-requests" id="id2">Available requests</a><ul>
7793     -<li><a class="reference internal" href="#info" id="id3">info</a></li>
7794     -<li><a class="reference internal" href="#newticket" id="id4">newticket</a></li>
7795     -<li><a class="reference internal" href="#newgrant" id="id5">newgrant</a></li>
7796     -<li><a class="reference internal" href="#purgeticket" id="id6">purgeticket</a></li>
7797     -</ul>
7798     -</li>
7799     -<li><a class="reference internal" href="#curl-examples" id="id7"><tt class="docutils literal">curl</tt> examples</a></li>
7800     -<li><a class="reference internal" href="#programming-apis" id="id8">Programming APIs</a><ul>
7801     -<li><a class="reference internal" href="#python" id="id9">Python</a></li>
7802     -</ul>
7803     -</li>
7804     -</ul>
7805     -</div>
7806     -<p>Since version 0.10 DL offers a &quot;RESTful&quot; HTTP API that allows inter-operation
7807     -between other services and/or native programs easily.</p>
7808     -<div class="section" id="outline-of-the-api">
7809     -<h1><a class="toc-backref" href="#id1">Outline of the API</a></h1>
7810     -<p>Every request is gated through the &quot;/rest.php&quot; page (or simply &quot;/rest&quot;,
7811     -depending on the configuration), which is directly on the root of the web
7812     -service, for example:</p>
7813     -<pre class="literal-block">
7814     -https://dl.example.com/rest.php
7815     -</pre>
7816     -<p>Each action is directly appended to the URI space, followed by parameters (if
7817     -any):</p>
7818     -<pre class="literal-block">
7819     -/rest/request[/parameters]
7820     -</pre>
7821     -<p>Every request must be performed via the appropriate HTTP method (either &quot;GET&quot;
7822     -or &quot;POST&quot;), and must always include HTTP's &quot;Basic&quot; authorization credentials.</p>
7823     -<p>The credentials must also be replicated in a second header &quot;X-Authorization&quot;
7824     -(which follows the same syntax as a normal &quot;Basic&quot; authorization scheme).</p>
7825     -<p>&quot;POST&quot; requests are <tt class="docutils literal"><span class="pre">x-www-form-urlencoded</span></tt> and must also include:</p>
7826     -<ul class="simple">
7827     -<li>A JSON-encoded &quot;msg&quot; parameter, with arguments defined by the request. This
7828     -parameter should always be present, even when empty.</li>
7829     -<li>When needed, a &quot;file&quot; parameter with the file to be attached.</li>
7830     -</ul>
7831     -<p>The output of every request can be:</p>
7832     -<ul>
7833     -<li><p class="first">An HTTP error code only (400, 401, 500, etc).</p>
7834     -</li>
7835     -<li><p class="first">An HTTP error code with a JSON-encoded message with an &quot;error&quot; term:</p>
7836     -<pre class="literal-block">
7837     -{&quot;error&quot;:&quot;error description&quot;}
7838     -</pre>
7839     -</li>
7840     -<li><p class="first">A successful HTTP status (200), with a JSON-encoded message (even if empty)
7841     -containing the specific request output.</p>
7842     -</li>
7843     -</ul>
7844     -</div>
7845     -<div class="section" id="available-requests">
7846     -<h1><a class="toc-backref" href="#id2">Available requests</a></h1>
7847     -<div class="section" id="info">
7848     -<h2><a class="toc-backref" href="#id3">info</a></h2>
7849     -<p>An &quot;info&quot; request returns the service defaults and statistics.</p>
7850     -<p>Since: 0.10</p>
7851     -<p>Request method: &quot;GET&quot;</p>
7852     -<p>Request parameters: None</p>
7853     -<p>Returned values:</p>
7854     -<ul class="simple">
7855     -<li>version (string): DL version.</li>
7856     -<li>masterpath (string): root URL of the service.</li>
7857     -<li>url (string): configurable reference URL for the service.</li>
7858     -<li>maxsize (integer): maximum upload size (in bytes).</li>
7859     -<li>defaults: service defaults:<ul>
7860     -<li>grant:<ul>
7861     -<li>total (integer): maximal number of seconds for grants.</li>
7862     -<li>lastul (integer, since 0.18): maximal number of seconds after last upload for grants.</li>
7863     -<li>maxul (integer, since 0.18): maximal number of uploads for grants.</li>
7864     -</ul>
7865     -</li>
7866     -<li>ticket:<ul>
7867     -<li>total (integer): maximal number of seconds for tickets.</li>
7868     -<li>lastdl (integer): maximal number of seconds after last download for tickets.</li>
7869     -<li>maxdl (integer): maximal number of downloads for tickets.</li>
7870     -</ul>
7871     -</li>
7872     -</ul>
7873     -</li>
7874     -</ul>
7875     -<p>Example request:</p>
7876     -<pre class="code http literal-block">
7877     -<span class="name function">GET</span> <span class="name namespace">/rest/info</span> <span class="keyword reserved">HTTP</span><span class="operator">/</span><span class="literal number">1.0</span>
7878     -<span class="name attribute">Host</span><span class="operator">:</span> <span class="literal">dl.example.com</span>
7879     -<span class="name attribute">Authorization</span><span class="operator">:</span> <span class="literal">Basic dGVzdDp0ZXN0</span>
7880     -<span class="name attribute">X-Authorization</span><span class="operator">:</span> <span class="literal">Basic dGVzdDp0ZXN0</span>
7881     -</pre>
7882     -<p>Example answer:</p>
7883     -<pre class="code http literal-block">
7884     -<span class="keyword reserved">HTTP</span><span class="operator">/</span><span class="literal number">1.1</span> <span class="literal number">200</span> <span class="name exception">OK</span>
7885     -<span class="name attribute">Content-Type</span><span class="operator">:</span> <span class="literal">application/json</span>
7886     -</pre>
7887     -<pre class="code json literal-block">
7888     -<span class="punctuation">{</span>
7889     - <span class="name tag">&quot;version&quot;</span><span class="punctuation">:</span> <span class="literal string double">&quot;0.11&quot;</span><span class="punctuation">,</span>
7890     - <span class="name tag">&quot;url&quot;</span><span class="punctuation">:</span> <span class="literal string double">&quot;http:\/\/www.thregr.org\/~wavexx\/software\/dl\/&quot;</span><span class="punctuation">,</span>
7891     - <span class="name tag">&quot;masterpath&quot;</span><span class="punctuation">:</span> <span class="literal string double">&quot;http:\/\/dl.example.com\/&quot;</span><span class="punctuation">,</span>
7892     - <span class="name tag">&quot;maxsize&quot;</span><span class="punctuation">:</span> <span class="literal number integer">209715200</span><span class="punctuation">,</span>
7893     - <span class="name tag">&quot;defaults&quot;</span><span class="punctuation">:</span>
7894     - <span class="punctuation">{</span>
7895     - <span class="name tag">&quot;grant&quot;</span><span class="punctuation">:</span>
7896     - <span class="punctuation">{</span>
7897     - <span class="name tag">&quot;total&quot;</span><span class="punctuation">:</span> <span class="literal number integer">31536000</span>
7898     - <span class="punctuation">},</span>
7899     - <span class="name tag">&quot;ticket&quot;</span><span class="punctuation">:</span>
7900     - <span class="punctuation">{</span>
7901     - <span class="name tag">&quot;total&quot;</span><span class="punctuation">:</span> <span class="literal number integer">31536000</span><span class="punctuation">,</span>
7902     - <span class="name tag">&quot;lastdl&quot;</span><span class="punctuation">:</span> <span class="literal number integer">2592000</span><span class="punctuation">,</span>
7903     - <span class="name tag">&quot;maxdl&quot;</span><span class="punctuation">:</span> <span class="literal number integer">0</span>
7904     - <span class="punctuation">}</span>
7905     - <span class="punctuation">}</span>
7906     -<span class="punctuation">}</span>
7907     -</pre>
7908     -</div>
7909     -<div class="section" id="newticket">
7910     -<h2><a class="toc-backref" href="#id4">newticket</a></h2>
7911     -<p>A &quot;newticket&quot; request creates a new ticket.</p>
7912     -<p>Since: 0.10</p>
7913     -<p>Request method: &quot;POST&quot;</p>
7914     -<p>Request parameters: None</p>
7915     -<p>POST &quot;msg&quot; object parameters:</p>
7916     -<ul class="simple">
7917     -<li>comment (string): comment for the ticket.</li>
7918     -<li>pass (string): password required for the ticket.</li>
7919     -<li>pass_send (boolean, since: 0.18): send password in email notifications
7920     -(defaults to true when unset)</li>
7921     -<li>ticket_total (integer): maximal number of seconds.</li>
7922     -<li>ticket_lastdl (integer): maximal number of seconds after last download.</li>
7923     -<li>ticket_maxdl (integer): maximal number of downloads for the ticket.</li>
7924     -<li>notify (string): notification addresses (comma-separated list of e-mails).</li>
7925     -<li>send_to (string): send-link-to addresses (comma-separated list of e-mails).</li>
7926     -<li>permanent (boolean): Same as ticket_expiry=never.</li>
7927     -<li>ticket_expiry (choice: auto/once/never/custom, since: 0.18):<table class="docutils field-list" frame="void" rules="none">
7928     -<col class="field-name" />
7929     -<col class="field-body" />
7930     -<tbody valign="top">
7931     -<tr class="field"><th class="field-name">auto:</th><td class="field-body">use server's defaults for ticket expiration</td>
7932     -</tr>
7933     -<tr class="field"><th class="field-name">once:</th><td class="field-body">same as ticket_maxdl=1 with server's default ticket_total</td>
7934     -</tr>
7935     -<tr class="field"><th class="field-name">never:</th><td class="field-body">same as ticket_total/ticket_lastdl/ticket_maxdl=0</td>
7936     -</tr>
7937     -<tr class="field"><th class="field-name">custom:</th><td class="field-body">requires explicit ticket_total/ticket_lastdl/ticket_maxdl</td>
7938     -</tr>
7939     -</tbody>
7940     -</table>
7941     -</li>
7942     -</ul>
7943     -<p>POST &quot;file&quot; parameter:</p>
7944     -<ul class="simple">
7945     -<li>File to be attached (mandatory).</li>
7946     -</ul>
7947     -<p>Returned values:</p>
7948     -<ul class="simple">
7949     -<li>id (string): ticket ID.</li>
7950     -<li>url (string): ticket URL.</li>
7951     -</ul>
7952     -</div>
7953     -<div class="section" id="newgrant">
7954     -<h2><a class="toc-backref" href="#id5">newgrant</a></h2>
7955     -<p>A &quot;newgrant&quot; request creates a new grant.</p>
7956     -<p>Since: 0.13</p>
7957     -<p>Request method: &quot;POST&quot;</p>
7958     -<p>Request parameters: None</p>
7959     -<p>POST &quot;msg&quot; object parameters:</p>
7960     -<ul class="simple">
7961     -<li>notify (string): notification address (mandatory).</li>
7962     -<li>comment (string): comment for the grant/ticket.</li>
7963     -<li>pass (string): password required for the grant/ticket.</li>
7964     -<li>pass_send (boolean, since: 0.18): send password in email notifications
7965     -(defaults to true when unset)</li>
7966     -<li>grant_total (integer): maximal number of seconds.</li>
7967     -<li>grant_lastul (integer, since: 0.18): maximal number of seconds after the last
7968     -upload has been triggered.</li>
7969     -<li>grant_maxul (integer, since: 0.18): maximal number of uploads for the grant.</li>
7970     -<li>grant_expiry (choice: auto/once/never/custom, since: 0.18):<table class="docutils field-list" frame="void" rules="none">
7971     -<col class="field-name" />
7972     -<col class="field-body" />
7973     -<tbody valign="top">
7974     -<tr class="field"><th class="field-name">auto:</th><td class="field-body">use server's defaults for grant expiration</td>
7975     -</tr>
7976     -<tr class="field"><th class="field-name">once:</th><td class="field-body">same as grant_maxul=1 with server's default grant_total</td>
7977     -</tr>
7978     -<tr class="field"><th class="field-name">never:</th><td class="field-body">same as grant_total/grant_lastul/grant_maxul=0</td>
7979     -</tr>
7980     -<tr class="field"><th class="field-name">custom:</th><td class="field-body">requires explicit grant_total/grant_lastul/grant_maxul</td>
7981     -</tr>
7982     -</tbody>
7983     -</table>
7984     -</li>
7985     -<li>ticket_total (integer): maximal number of seconds.</li>
7986     -<li>ticket_lastdl (integer): maximal number of seconds after last download.</li>
7987     -<li>ticket_maxdl (integer): maximal number of downloads for the ticket.</li>
7988     -<li>send_to (string): send-link-to addresses (comma-separated list of e-mails).</li>
7989     -<li>ticket_permanent (boolean): Same as ticket_expiry=never.</li>
7990     -<li>ticket_expiry (choice: auto/once/never/custom, since: 0.18):<table class="docutils field-list" frame="void" rules="none">
7991     -<col class="field-name" />
7992     -<col class="field-body" />
7993     -<tbody valign="top">
7994     -<tr class="field"><th class="field-name">auto:</th><td class="field-body">use server's defaults for ticket expiration</td>
7995     -</tr>
7996     -<tr class="field"><th class="field-name">once:</th><td class="field-body">same as ticket_maxdl=1 with server's default ticket_total</td>
7997     -</tr>
7998     -<tr class="field"><th class="field-name">never:</th><td class="field-body">same as ticket_total/ticket_lastdl/ticket_maxdl=0</td>
7999     -</tr>
8000     -<tr class="field"><th class="field-name">custom:</th><td class="field-body">requires explicit ticket_total/ticket_lastdl/ticket_maxdl</td>
8001     -</tr>
8002     -</tbody>
8003     -</table>
8004     -</li>
8005     -</ul>
8006     -<p>Returned values:</p>
8007     -<ul class="simple">
8008     -<li>id (string): grant ID.</li>
8009     -<li>url (string): grant URL.</li>
8010     -</ul>
8011     -</div>
8012     -<div class="section" id="purgeticket">
8013     -<h2><a class="toc-backref" href="#id6">purgeticket</a></h2>
8014     -<p>A &quot;purgeticket&quot; request deletes a ticket ID and its associated file, notifying
8015     -the owner (if requested).</p>
8016     -<p>Since: 0.11</p>
8017     -<p>Request method: &quot;POST&quot;</p>
8018     -<p>Request parameters:</p>
8019     -<ul class="simple">
8020     -<li>ticket-id: mandatory</li>
8021     -</ul>
8022     -<p>POST &quot;msg&quot; object parameters: None</p>
8023     -<p>Returned values: None</p>
8024     -<p>Example request:</p>
8025     -<pre class="code http literal-block">
8026     -<span class="name function">POST</span> <span class="name namespace">/rest/purgeticket/c1e3c2e0b6d5d0f0ada292c081fc4c49</span> <span class="keyword reserved">HTTP</span><span class="operator">/</span><span class="literal number">1.0</span>
8027     -<span class="name attribute">Host</span><span class="operator">:</span> <span class="literal">dl.example.com</span>
8028     -<span class="name attribute">Authorization</span><span class="operator">:</span> <span class="literal">Basic dGVzdDp0ZXN0</span>
8029     -<span class="name attribute">X-Authorization</span><span class="operator">:</span> <span class="literal">Basic dGVzdDp0ZXN0</span>
8030     -<span class="name attribute">Content-Type</span><span class="operator">:</span> <span class="literal">application/x-www-form-urlencoded</span>
8031     -
8032     -msg={}
8033     -</pre>
8034     -<p>Example answer:</p>
8035     -<pre class="code http literal-block">
8036     -<span class="keyword reserved">HTTP</span><span class="operator">/</span><span class="literal number">1.1</span> <span class="literal number">200</span> <span class="name exception">OK</span>
8037     -<span class="name attribute">Content-Type</span><span class="operator">:</span> <span class="literal">application/json</span>
8038     -
8039     -<span class="punctuation">{}</span>
8040     -</pre>
8041     -</div>
8042     -</div>
8043     -<div class="section" id="curl-examples">
8044     -<h1><a class="toc-backref" href="#id7"><tt class="docutils literal">curl</tt> examples</a></h1>
8045     -<p><a class="reference external" href="https://curl.haxx.se/">curl</a> can be used to easily fiddle with the REST API.</p>
8046     -<p>A minimal request to create a new ticket can be performed with the following
8047     -command:</p>
8048     -<pre class="literal-block">
8049     -curl https://dl.example.com/rest.php/newticket \
8050     - -F file=&#64;filename -F msg={} \
8051     - -H 'Authorization: Basic dGVzdDp0ZXN0' \
8052     - -H 'X-Authorization: Basic dGVzdDp0ZXN0'
8053     -</pre>
8054     -<p><tt class="docutils literal">&#64;filename</tt> is a special curl syntax that specifies the path to the
8055     -filename to be posted. The basic authorization data is provided manually, as
8056     -it needs to be replicated in the non-standard header &quot;X-Authorization&quot; anyway
8057     -(this is used as a secondary token to prevent CSRF). You can construct the
8058     -authorization hash on the command-line as well with the following:</p>
8059     -<pre class="literal-block">
8060     -echo -n 'user:password' | base64
8061     -</pre>
8062     -<p>Please keep in mind command-line arguments are usually visible to other users
8063     -running on the same system, potentially exposing your password.</p>
8064     -</div>
8065     -<div class="section" id="programming-apis">
8066     -<h1><a class="toc-backref" href="#id8">Programming APIs</a></h1>
8067     -<div class="section" id="python">
8068     -<h2><a class="toc-backref" href="#id9">Python</a></h2>
8069     -<p>A Python API, supporting both asynchronous/synchronous operations and progress
8070     -support can be found in the <tt class="docutils literal"><span class="pre">client/dl-wx/dl.py</span></tt> file. The API is used both
8071     -by <tt class="docutils literal"><span class="pre">dl-wx.py</span></tt> and <tt class="docutils literal"><span class="pre">dl-cli.py</span></tt> in the same directory.</p>
8072     -<p>A simpler stand-alone implementation which can be helpful for testing can be
8073     -found at <tt class="docutils literal"><span class="pre">client/dl-cli.py</span></tt>.</p>
8074     -</div>
8075     -</div>
8076     -</div>
8077     -</body>
8078     -</html>
8079     diff -Nur dl-0.18.1/THANKS.html dl-master/THANKS.html
8080     --- dl-0.18.1/THANKS.html 2017-09-06 12:09:40.000000000 -0400
8081     +++ dl-master/THANKS.html 1969-12-31 19:00:00.000000000 -0500
8082     @@ -1,464 +0,0 @@
8083     -<?xml version="1.0" encoding="utf-8" ?>
8084     -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
8085     -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
8086     -<head>
8087     -<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8088     -<meta name="generator" content="Docutils 0.13.1: http://docutils.sourceforge.net/" />
8089     -<title>Download Ticket Service credits</title>
8090     -<style type="text/css">
8091     -
8092     -/*
8093     -:Author: David Goodger (goodger@python.org)
8094     -:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
8095     -:Copyright: This stylesheet has been placed in the public domain.
8096     -
8097     -Default cascading style sheet for the HTML output of Docutils.
8098     -
8099     -See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
8100     -customize this style sheet.
8101     -*/
8102     -
8103     -/* used to remove borders from tables and images */
8104     -.borderless, table.borderless td, table.borderless th {
8105     - border: 0 }
8106     -
8107     -table.borderless td, table.borderless th {
8108     - /* Override padding for "table.docutils td" with "! important".
8109     - The right padding separates the table cells. */
8110     - padding: 0 0.5em 0 0 ! important }
8111     -
8112     -.first {
8113     - /* Override more specific margin styles with "! important". */
8114     - margin-top: 0 ! important }
8115     -
8116     -.last, .with-subtitle {
8117     - margin-bottom: 0 ! important }
8118     -
8119     -.hidden {
8120     - display: none }
8121     -
8122     -.subscript {
8123     - vertical-align: sub;
8124     - font-size: smaller }
8125     -
8126     -.superscript {
8127     - vertical-align: super;
8128     - font-size: smaller }
8129     -
8130     -a.toc-backref {
8131     - text-decoration: none ;
8132     - color: black }
8133     -
8134     -blockquote.epigraph {
8135     - margin: 2em 5em ; }
8136     -
8137     -dl.docutils dd {
8138     - margin-bottom: 0.5em }
8139     -
8140     -object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
8141     - overflow: hidden;
8142     -}
8143     -
8144     -/* Uncomment (and remove this text!) to get bold-faced definition list terms
8145     -dl.docutils dt {
8146     - font-weight: bold }
8147     -*/
8148     -
8149     -div.abstract {
8150     - margin: 2em 5em }
8151     -
8152     -div.abstract p.topic-title {
8153     - font-weight: bold ;
8154     - text-align: center }
8155     -
8156     -div.admonition, div.attention, div.caution, div.danger, div.error,
8157     -div.hint, div.important, div.note, div.tip, div.warning {
8158     - margin: 2em ;
8159     - border: medium outset ;
8160     - padding: 1em }
8161     -
8162     -div.admonition p.admonition-title, div.hint p.admonition-title,
8163     -div.important p.admonition-title, div.note p.admonition-title,
8164     -div.tip p.admonition-title {
8165     - font-weight: bold ;
8166     - font-family: sans-serif }
8167     -
8168     -div.attention p.admonition-title, div.caution p.admonition-title,
8169     -div.danger p.admonition-title, div.error p.admonition-title,
8170     -div.warning p.admonition-title, .code .error {
8171     - color: red ;
8172     - font-weight: bold ;
8173     - font-family: sans-serif }
8174     -
8175     -/* Uncomment (and remove this text!) to get reduced vertical space in
8176     - compound paragraphs.
8177     -div.compound .compound-first, div.compound .compound-middle {
8178     - margin-bottom: 0.5em }
8179     -
8180     -div.compound .compound-last, div.compound .compound-middle {
8181     - margin-top: 0.5em }
8182     -*/
8183     -
8184     -div.dedication {
8185     - margin: 2em 5em ;
8186     - text-align: center ;
8187     - font-style: italic }
8188     -
8189     -div.dedication p.topic-title {
8190     - font-weight: bold ;
8191     - font-style: normal }
8192     -
8193     -div.figure {
8194     - margin-left: 2em ;
8195     - margin-right: 2em }
8196     -
8197     -div.footer, div.header {
8198     - clear: both;
8199     - font-size: smaller }
8200     -
8201     -div.line-block {
8202     - display: block ;
8203     - margin-top: 1em ;
8204     - margin-bottom: 1em }
8205     -
8206     -div.line-block div.line-block {
8207     - margin-top: 0 ;
8208     - margin-bottom: 0 ;
8209     - margin-left: 1.5em }
8210     -
8211     -div.sidebar {
8212     - margin: 0 0 0.5em 1em ;
8213     - border: medium outset ;
8214     - padding: 1em ;
8215     - background-color: #ffffee ;
8216     - width: 40% ;
8217     - float: right ;
8218     - clear: right }
8219     -
8220     -div.sidebar p.rubric {
8221     - font-family: sans-serif ;
8222     - font-size: medium }
8223     -
8224     -div.system-messages {
8225     - margin: 5em }
8226     -
8227     -div.system-messages h1 {
8228     - color: red }
8229     -
8230     -div.system-message {
8231     - border: medium outset ;
8232     - padding: 1em }
8233     -
8234     -div.system-message p.system-message-title {
8235     - color: red ;
8236     - font-weight: bold }
8237     -
8238     -div.topic {
8239     - margin: 2em }
8240     -
8241     -h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
8242     -h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
8243     - margin-top: 0.4em }
8244     -
8245     -h1.title {
8246     - text-align: center }
8247     -
8248     -h2.subtitle {
8249     - text-align: center }
8250     -
8251     -hr.docutils {
8252     - width: 75% }
8253     -
8254     -img.align-left, .figure.align-left, object.align-left, table.align-left {
8255     - clear: left ;
8256     - float: left ;
8257     - margin-right: 1em }
8258     -
8259     -img.align-right, .figure.align-right, object.align-right, table.align-right {
8260     - clear: right ;
8261     - float: right ;
8262     - margin-left: 1em }
8263     -
8264     -img.align-center, .figure.align-center, object.align-center {
8265     - display: block;
8266     - margin-left: auto;
8267     - margin-right: auto;
8268     -}
8269     -
8270     -table.align-center {
8271     - margin-left: auto;
8272     - margin-right: auto;
8273     -}
8274     -
8275     -.align-left {
8276     - text-align: left }
8277     -
8278     -.align-center {
8279     - clear: both ;
8280     - text-align: center }
8281     -
8282     -.align-right {
8283     - text-align: right }
8284     -
8285     -/* reset inner alignment in figures */
8286     -div.align-right {
8287     - text-align: inherit }
8288     -
8289     -/* div.align-center * { */
8290     -/* text-align: left } */
8291     -
8292     -.align-top {
8293     - vertical-align: top }
8294     -
8295     -.align-middle {
8296     - vertical-align: middle }
8297     -
8298     -.align-bottom {
8299     - vertical-align: bottom }
8300     -
8301     -ol.simple, ul.simple {
8302     - margin-bottom: 1em }
8303     -
8304     -ol.arabic {
8305     - list-style: decimal }
8306     -
8307     -ol.loweralpha {
8308     - list-style: lower-alpha }
8309     -
8310     -ol.upperalpha {
8311     - list-style: upper-alpha }
8312     -
8313     -ol.lowerroman {
8314     - list-style: lower-roman }
8315     -
8316     -ol.upperroman {
8317     - list-style: upper-roman }
8318     -
8319     -p.attribution {
8320     - text-align: right ;
8321     - margin-left: 50% }
8322     -
8323     -p.caption {
8324     - font-style: italic }
8325     -
8326     -p.credits {
8327     - font-style: italic ;
8328     - font-size: smaller }
8329     -
8330     -p.label {
8331     - white-space: nowrap }
8332     -
8333     -p.rubric {
8334     - font-weight: bold ;
8335     - font-size: larger ;
8336     - color: maroon ;
8337     - text-align: center }
8338     -
8339     -p.sidebar-title {
8340     - font-family: sans-serif ;
8341     - font-weight: bold ;
8342     - font-size: larger }
8343     -
8344     -p.sidebar-subtitle {
8345     - font-family: sans-serif ;
8346     - font-weight: bold }
8347     -
8348     -p.topic-title {
8349     - font-weight: bold }
8350     -
8351     -pre.address {
8352     - margin-bottom: 0 ;
8353     - margin-top: 0 ;
8354     - font: inherit }
8355     -
8356     -pre.literal-block, pre.doctest-block, pre.math, pre.code {
8357     - margin-left: 2em ;
8358     - margin-right: 2em }
8359     -
8360     -pre.code .ln { color: grey; } /* line numbers */
8361     -pre.code, code { background-color: #eeeeee }
8362     -pre.code .comment, code .comment { color: #5C6576 }
8363     -pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
8364     -pre.code .literal.string, code .literal.string { color: #0C5404 }
8365     -pre.code .name.builtin, code .name.builtin { color: #352B84 }
8366     -pre.code .deleted, code .deleted { background-color: #DEB0A1}
8367     -pre.code .inserted, code .inserted { background-color: #A3D289}
8368     -
8369     -span.classifier {
8370     - font-family: sans-serif ;
8371     - font-style: oblique }
8372     -
8373     -span.classifier-delimiter {
8374     - font-family: sans-serif ;
8375     - font-weight: bold }
8376     -
8377     -span.interpreted {
8378     - font-family: sans-serif }
8379     -
8380     -span.option {
8381     - white-space: nowrap }
8382     -
8383     -span.pre {
8384     - white-space: pre }
8385     -
8386     -span.problematic {
8387     - color: red }
8388     -
8389     -span.section-subtitle {
8390     - /* font-size relative to parent (h1..h6 element) */
8391     - font-size: 80% }
8392     -
8393     -table.citation {
8394     - border-left: solid 1px gray;
8395     - margin-left: 1px }
8396     -
8397     -table.docinfo {
8398     - margin: 2em 4em }
8399     -
8400     -table.docutils {
8401     - margin-top: 0.5em ;
8402     - margin-bottom: 0.5em }
8403     -
8404     -table.footnote {
8405     - border-left: solid 1px black;
8406     - margin-left: 1px }
8407     -
8408     -table.docutils td, table.docutils th,
8409     -table.docinfo td, table.docinfo th {
8410     - padding-left: 0.5em ;
8411     - padding-right: 0.5em ;
8412     - vertical-align: top }
8413     -
8414     -table.docutils th.field-name, table.docinfo th.docinfo-name {
8415     - font-weight: bold ;
8416     - text-align: left ;
8417     - white-space: nowrap ;
8418     - padding-left: 0 }
8419     -
8420     -/* "booktabs" style (no vertical lines) */
8421     -table.docutils.booktabs {
8422     - border: 0px;
8423     - border-top: 2px solid;
8424     - border-bottom: 2px solid;
8425     - border-collapse: collapse;
8426     -}
8427     -table.docutils.booktabs * {
8428     - border: 0px;
8429     -}
8430     -table.docutils.booktabs th {
8431     - border-bottom: thin solid;
8432     - text-align: left;
8433     -}
8434     -
8435     -h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
8436     -h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
8437     - font-size: 100% }
8438     -
8439     -ul.auto-toc {
8440     - list-style-type: none }
8441     -
8442     -</style>
8443     -</head>
8444     -<body>
8445     -<div class="document" id="download-ticket-service-credits">
8446     -<h1 class="title">Download Ticket Service credits</h1>
8447     -
8448     -<blockquote>
8449     -Development for &quot;Download Ticket Service&quot; has been sponsored in large part by
8450     -the EURAC's <a class="reference external" href="http://www.eurac.edu/en/research/health/biomed/Pages/default.aspx">Institute of Genetic Medicine</a>.</blockquote>
8451     -<hr class="docutils" />
8452     -<p>List of major contributors in alphabetical order:</p>
8453     -<p>Arthur Fabre [<a class="reference external" href="https://github.com/arthurfabre">https://github.com/arthurfabre</a>]:</p>
8454     -<ul class="simple">
8455     -<li><tt class="docutils literal"><span class="pre">dl-cli</span></tt> improvements.</li>
8456     -</ul>
8457     -<p>Clemens Egger &lt;<a class="reference external" href="mailto:clemens.egger&#64;eurac.edu">clemens.egger&#64;eurac.edu</a>&gt;:</p>
8458     -<ul class="simple">
8459     -<li>Suggestions and testing.</li>
8460     -<li>German UI/Guide translation.</li>
8461     -</ul>
8462     -<p>Daniel Berteaud &lt;<a class="reference external" href="mailto:daniel&#64;firewall-services.com">daniel&#64;firewall-services.com</a>&gt;:</p>
8463     -<ul class="simple">
8464     -<li>French translation.</li>
8465     -<li>Several patches, webSSO support.</li>
8466     -<li>Additional testing.</li>
8467     -</ul>
8468     -<p>Daniele Di Domizio &lt;<a class="reference external" href="mailto:daniele.didomizio&#64;eurac.edu">daniele.didomizio&#64;eurac.edu</a>&gt;:</p>
8469     -<ul class="simple">
8470     -<li>Additional testing.</li>
8471     -</ul>
8472     -<p>Emanuele Rosati &lt;<a class="reference external" href="mailto:emanuele.rosati&#64;gmail.com">emanuele.rosati&#64;gmail.com</a>&gt;:</p>
8473     -<ul class="simple">
8474     -<li>Suggestions and layout fixes.</li>
8475     -</ul>
8476     -<p>Fabiola Del Greco &lt;<a class="reference external" href="mailto:fabiola.delgreco&#64;eurac.edu">fabiola.delgreco&#64;eurac.edu</a>&gt;:</p>
8477     -<ul class="simple">
8478     -<li>Spanish UI translation.</li>
8479     -</ul>
8480     -<p>Guangyu Dong &lt;<a class="reference external" href="mailto:skyerce&#64;gmail.com">skyerce&#64;gmail.com</a>&gt;:</p>
8481     -<ul class="simple">
8482     -<li>Simplified Chinese translation.</li>
8483     -</ul>
8484     -<p>Guilherme Benkenstein &lt;<a class="reference external" href="mailto:gb&#64;gbti.com.br">gb&#64;gbti.com.br</a>&gt;:</p>
8485     -<ul class="simple">
8486     -<li>Brazilian Portuguese translation.</li>
8487     -</ul>
8488     -<p>Hervé Commowick &lt;<a class="reference external" href="mailto:hcommowick&#64;exosec.fr">hcommowick&#64;exosec.fr</a>&gt;:</p>
8489     -<ul class="simple">
8490     -<li>Progress bar patch.</li>
8491     -</ul>
8492     -<p>Jan Štětina &lt;<a class="reference external" href="mailto:zaantar&#64;gmail.com">zaantar&#64;gmail.com</a>&gt;:</p>
8493     -<ul class="simple">
8494     -<li>Czech translation.</li>
8495     -</ul>
8496     -<p>Johannes Martin &lt;<a class="reference external" href="mailto:johannes.martin&#64;eurac.edu">johannes.martin&#64;eurac.edu</a>&gt;:</p>
8497     -<ul class="simple">
8498     -<li>Android client.</li>
8499     -</ul>
8500     -<p>Kim Thostrup &lt;<a class="reference external" href="mailto:kim&#64;thostrup.dk">kim&#64;thostrup.dk</a>&gt;:</p>
8501     -<ul class="simple">
8502     -<li>DL 0.3 Skin.</li>
8503     -<li>Suggestions and testing.</li>
8504     -</ul>
8505     -<p>Larissa de Clauser &lt;<a class="reference external" href="mailto:larissa.declauser&#64;eurac.edu">larissa.declauser&#64;eurac.edu</a>&gt;:</p>
8506     -<ul class="simple">
8507     -<li>German Guide translation.</li>
8508     -</ul>
8509     -<p>Maarten Schoonman &lt;<a class="reference external" href="mailto:m.s.schoonman&#64;home.nl">m.s.schoonman&#64;home.nl</a>&gt;:</p>
8510     -<ul class="simple">
8511     -<li>Dutch translation.</li>
8512     -</ul>
8513     -<p>Mokrani Rachid &lt;<a class="reference external" href="mailto:rachid.mokrani&#64;ifpenergiesnouvelles.fr">rachid.mokrani&#64;ifpenergiesnouvelles.fr</a>&gt;:</p>
8514     -<ul class="simple">
8515     -<li>Suggestions and testing.</li>
8516     -<li>French UI/Guide translation.</li>
8517     -</ul>
8518     -<p>Олейник О.В &lt;<a class="reference external" href="mailto:oleg_oleinik&#64;mail.ru">oleg_oleinik&#64;mail.ru</a>&gt;:</p>
8519     -<ul class="simple">
8520     -<li>Russian translation.</li>
8521     -</ul>
8522     -<p>Roberto Salgado &lt;<a class="reference external" href="mailto:drober&#64;gmail.com">drober&#64;gmail.com</a>&gt;:</p>
8523     -<ul class="simple">
8524     -<li>Spanish UI/Guide translation.</li>
8525     -<li>Docker image maintenance.</li>
8526     -</ul>
8527     -<p>RustyPixel [<a class="reference external" href="https://github.com/RustyPixel">https://github.com/RustyPixel</a>]:</p>
8528     -<ul class="simple">
8529     -<li>DL 0.14 Skin.</li>
8530     -</ul>
8531     -<p>Sébastien Le Ray &lt;<a class="reference external" href="mailto:sebastien-github&#64;orniz.org">sebastien-github&#64;orniz.org</a>&gt;:</p>
8532     -<ul class="simple">
8533     -<li>Thunderdbird and DL code fixes.</li>
8534     -<li>French translation.</li>
8535     -</ul>
8536     -<p>Teruo IWAI &lt;<a class="reference external" href="mailto:oteru&#64;nak.ics.keio.ac.jp">oteru&#64;nak.ics.keio.ac.jp</a>&gt;:</p>
8537     -<ul class="simple">
8538     -<li>Japanese localization.</li>
8539     -</ul>
8540     -<p>Tim Booth &lt;<a class="reference external" href="mailto:tbooth&#64;ceh.ac.uk">tbooth&#64;ceh.ac.uk</a>&gt;:</p>
8541     -<ul class="simple">
8542     -<li>Suggestions and fixes.</li>
8543     -</ul>
8544     -</div>
8545     -</body>
8546     -</html>
8547     diff -Nur dl-0.18.1/THANKS.rst dl-master/THANKS.rst
8548     --- dl-0.18.1/THANKS.rst 2017-09-06 12:08:38.000000000 -0400
8549     +++ dl-master/THANKS.rst 2021-03-16 18:59:58.000000000 -0400
8550     @@ -29,6 +29,10 @@
8551    
8552     * Additional testing.
8553    
8554     +Dirk Reimers <dirk.reimers@secunet.com>:
8555     +
8556     +* Code auditing
8557     +
8558     Emanuele Rosati <emanuele.rosati@gmail.com>:
8559    
8560     * Suggestions and layout fixes.

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed