Compare commits
51 Commits
Author | SHA1 | Date | |
---|---|---|---|
7a0718d9cc | |||
a7cc3c7fff | |||
9d313f319d | |||
856044c88c | |||
de1b13a50f | |||
a981b7b8c7 | |||
abe9d82d03 | |||
49a3f08a9a | |||
afaa75fcdc | |||
a5c749412a | |||
e64da40355 | |||
05e7283f9f | |||
bea8e230fb | |||
23c1ece807 | |||
539d340f1a | |||
876486bbf5 | |||
9179851c85 | |||
1e96d7e787 | |||
612478bcc7 | |||
23f84fbde0 | |||
b7b4c57034 | |||
872b058d4c | |||
93ad3e71db | |||
7d824bf61e | |||
06228d9ec9 | |||
f9232ffd96 | |||
ab3c335bf1 | |||
9142cc023f | |||
3133a8d8ad | |||
312f39f7f6 | |||
4ba7bb530d | |||
9caad6b3a5 | |||
5e323db2f0 | |||
18daa28cea | |||
65c358c01b | |||
2d14432efe | |||
19b1cc8856 | |||
883f9a6f0b | |||
e969ba237a | |||
207248e706 | |||
9925dec0f4 | |||
09b2b4be10 | |||
f331de4134 | |||
7760072e8e | |||
626bf592de | |||
d550de0e27 | |||
367efb4b53 | |||
4a82c62958 | |||
891aa66bff | |||
2513b60c1b | |||
31cca481f9 |
@ -1,3 +1,7 @@
|
||||
|
||||

|
||||
|
||||
|
||||
# DownThemAll! WE
|
||||
|
||||
The DownThemAll! WebExtension.
|
||||
|
6
TODO.md
@ -1,8 +1,6 @@
|
||||
TODO
|
||||
---
|
||||
|
||||
aka a lot
|
||||
|
||||
P2
|
||||
===
|
||||
|
||||
@ -26,11 +24,7 @@ Nice-to-haves.
|
||||
* Manipulate downloads (e.g. rewrite URLs)
|
||||
* Native context menus?
|
||||
* Would require massive reworks incl the need for new icon formats, but potentially feasible.
|
||||
* Import/Export
|
||||
* Download priorities (manual scheduling overrides)
|
||||
* Dark Theme support
|
||||
* os/browser define be default
|
||||
* overwritable
|
||||
* Remove `any` types as possible, and generally improve typescript (new language to me)
|
||||
|
||||
P4
|
||||
|
@ -2,6 +2,7 @@
|
||||
"ar": "العربية [ar]",
|
||||
"bg": "Български [bg]",
|
||||
"cs": "Čeština (CZ) [cs]",
|
||||
"da": "Dansk [da]",
|
||||
"de": "Deutsch [de]",
|
||||
"el": "Ελληνικά [el]",
|
||||
"en": "English (US) [en]",
|
||||
|
@ -191,6 +191,22 @@
|
||||
"message": "احذف",
|
||||
"description": "button text"
|
||||
},
|
||||
"deletefiles": {
|
||||
"message": "احذف الملفات",
|
||||
"description": "menu action"
|
||||
},
|
||||
"deletefiles_button": {
|
||||
"message": "احذف",
|
||||
"description": "button text"
|
||||
},
|
||||
"deletefiles_text": {
|
||||
"message": "أتريد إزالة الملفات الآتية؟",
|
||||
"description": "messagebox text"
|
||||
},
|
||||
"deletefiles_title": {
|
||||
"message": "حذف الملفات",
|
||||
"description": "messagebox title"
|
||||
},
|
||||
"description": {
|
||||
"message": "الوصف",
|
||||
"description": "Description (keep it short); e.g. the description column in select"
|
||||
@ -275,10 +291,34 @@
|
||||
"message": "العنوان غير صالح",
|
||||
"description": "Error message; single window"
|
||||
},
|
||||
"error_noabsolutepath": {
|
||||
"message": "لا تدعم المتصفّحات أي مسار مُطلق للمجلدات الفرعية",
|
||||
"description": "Error Message; select/single window"
|
||||
},
|
||||
"error_nodotsinpath": {
|
||||
"message": "لا تدعم المتصفّحات النقط (.) في المجلدات الفرعية",
|
||||
"description": "Error Message; select/single window"
|
||||
},
|
||||
"error_noItemsSelected": {
|
||||
"message": "لم تحدّد عناصر",
|
||||
"description": "Error Message; select window"
|
||||
},
|
||||
"export": {
|
||||
"message": "صدّر إلى ملف",
|
||||
"description": "menu text"
|
||||
},
|
||||
"export_aria2": {
|
||||
"message": "صدّر بنسق قائمة aria2",
|
||||
"description": "menu text"
|
||||
},
|
||||
"export_metalink": {
|
||||
"message": "صدّر بنسق Metalink",
|
||||
"description": "menu text"
|
||||
},
|
||||
"export_text": {
|
||||
"message": "صدّر كنصّ",
|
||||
"description": "menu text"
|
||||
},
|
||||
"extensionDescription": {
|
||||
"message": "أداة التنزيل لبحور من الروابط، داخل متصفحك",
|
||||
"description": "DownThemAll! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one"
|
||||
@ -331,6 +371,10 @@
|
||||
"message": "يُجبر البدء",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"import": {
|
||||
"message": "استورِد من نصّ",
|
||||
"description": "menu text"
|
||||
},
|
||||
"information_title": {
|
||||
"message": "معلومات",
|
||||
"description": "Used in message boxes"
|
||||
@ -529,6 +573,26 @@
|
||||
"message": "أضفِ التنزيلات الجديدة ملبثة، بدل بدئها مباشرة عند إضافتها",
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_button_type": {
|
||||
"message": "زر ”نزّلها كلها!“:",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_dta": {
|
||||
"message": "تحديد ”نزّلها كلها“",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_manager": {
|
||||
"message": "يفتح المدير",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_popup": {
|
||||
"message": "يعرض القائمة",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_turbo": {
|
||||
"message": "ينفّذ ”بنقرة واحدة!“",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_concurrent_downloads": {
|
||||
"message": "التنزيلات المتزامنة",
|
||||
"description": "Preferences/Network"
|
||||
@ -537,10 +601,6 @@
|
||||
"message": "اعرض إخطارًا حين ينتهي تنزيل طابور التنزيلات",
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_global_turbo": {
|
||||
"message": "ليكن زر المتصفح ”بنقرة واحدة!“",
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_hide_context": {
|
||||
"message": "لا تعرض عناصر القائمة السياقية العامة",
|
||||
"description": "Preferences/General"
|
||||
@ -549,6 +609,10 @@
|
||||
"message": "المدير",
|
||||
"description": "Preferences/General; group text"
|
||||
},
|
||||
"pref_manager_in_popup": {
|
||||
"message": "افتح المدير في نافذة منبثقة جديدة",
|
||||
"description": "checkbox text"
|
||||
},
|
||||
"pref_manager_tooltip": {
|
||||
"message": "اعرض التلميحات في ألسنة المدير",
|
||||
"description": "Preferences/General"
|
||||
@ -573,14 +637,42 @@
|
||||
"message": "أزِل التنزيلات الناقصة بعد إعادة التشغيل",
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_retries": {
|
||||
"message": "عدد مرات إعادة التنزيل في حال الأخطاء المؤقتة",
|
||||
"description": "pref text"
|
||||
},
|
||||
"pref_retry_time": {
|
||||
"message": "أعِد كل (بالدقيقة)",
|
||||
"description": "pref text"
|
||||
},
|
||||
"pref_show_urls": {
|
||||
"message": "اعرض العناوين بدل الأسماء",
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_sounds": {
|
||||
"message": "شغّل الأصوات",
|
||||
"description": "checkbox text"
|
||||
},
|
||||
"pref_text_links": {
|
||||
"message": "حاوِل البحث عن الروابط في نص موقع الوِب (أبطأ)",
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_theme": {
|
||||
"message": "السمة:",
|
||||
"description": "label text"
|
||||
},
|
||||
"pref_theme_dark": {
|
||||
"message": "داكنة",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_theme_default": {
|
||||
"message": "النظام/المتصفح",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_theme_light": {
|
||||
"message": "فاتحة",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_ui": {
|
||||
"message": "واجهة المستخدم",
|
||||
"description": "Preferences/General; group text"
|
||||
@ -895,6 +987,20 @@
|
||||
"message": "استأنف",
|
||||
"description": "Action for resuming a download"
|
||||
},
|
||||
"retrying": {
|
||||
"message": "يُعيد",
|
||||
"description": "Status text"
|
||||
},
|
||||
"retrying_error": {
|
||||
"message": "يُعيد -$ERROR$",
|
||||
"description": "status text",
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"content": "$1",
|
||||
"example": "Server Error"
|
||||
}
|
||||
}
|
||||
},
|
||||
"running": {
|
||||
"message": "يعمل",
|
||||
"description": "Status text"
|
||||
@ -943,6 +1049,18 @@
|
||||
"message": "اضبط قناع تغيير الاسم",
|
||||
"description": "Menu text; select window"
|
||||
},
|
||||
"set_mask_text": {
|
||||
"message": "اضبط قناع تغيير اسم جديد",
|
||||
"description": "dialog text"
|
||||
},
|
||||
"set_referrer": {
|
||||
"message": "اضبط المُعيد",
|
||||
"description": "menu text"
|
||||
},
|
||||
"set_referrer_text": {
|
||||
"message": "اضبط مُعيدًا جديدًا",
|
||||
"description": "dialog text"
|
||||
},
|
||||
"single_batchexamples": {
|
||||
"message": "الدفعات مدعومة، مثل:",
|
||||
"description": "Header text; single window"
|
||||
@ -1123,6 +1241,14 @@
|
||||
"message": "لن تبدأ أي تنزيلات جديدة",
|
||||
"description": "Status bar tooltip; manager network icon"
|
||||
},
|
||||
"subfolder": {
|
||||
"message": "المجلد الفرعي:",
|
||||
"description": "label text"
|
||||
},
|
||||
"subfolder_placeholder": {
|
||||
"message": "ضَع الملفات في هذا المجلد الفرعي لدليل المجلدات في الجهاز",
|
||||
"description": "placeholder text within an input box"
|
||||
},
|
||||
"title": {
|
||||
"message": "العنوان",
|
||||
"description": "Column text; Title label (short)"
|
||||
@ -1166,5 +1292,9 @@
|
||||
"useonlyonce": {
|
||||
"message": "استعمله مرة واحدة",
|
||||
"description": "Label for Use-Once checkboxes"
|
||||
},
|
||||
"USER_CANCELED": {
|
||||
"message": "ألغاها المستخدم",
|
||||
"description": "Error message"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -642,7 +642,7 @@
|
||||
"description": "pref text"
|
||||
},
|
||||
"pref_retry_time": {
|
||||
"message": "Опит на всеки (в минути)",
|
||||
"message": "Нов опит на всеки (в минути)",
|
||||
"description": "pref text"
|
||||
},
|
||||
"pref_show_urls": {
|
||||
@ -657,6 +657,22 @@
|
||||
"message": "Опит за намиране на връзки в текста на уебсайта (по-бавно)",
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_theme": {
|
||||
"message": "Тема:",
|
||||
"description": "label text"
|
||||
},
|
||||
"pref_theme_dark": {
|
||||
"message": "Тъмна",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_theme_default": {
|
||||
"message": "Системна/Браузър",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_theme_light": {
|
||||
"message": "Светла",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_ui": {
|
||||
"message": "Потребителски интерфейс",
|
||||
"description": "Preferences/General; group text"
|
||||
|
1284
_locales/da/messages.json
Normal file
@ -657,6 +657,22 @@
|
||||
"message": "Versuche Text-Links in Webseiten zu finden (langsamer)",
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_theme": {
|
||||
"message": "Theme:",
|
||||
"description": "label text"
|
||||
},
|
||||
"pref_theme_dark": {
|
||||
"message": "Dunkel",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_theme_default": {
|
||||
"message": "System/Browser",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_theme_light": {
|
||||
"message": "Hell",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_ui": {
|
||||
"message": "Benutzeroberfläche",
|
||||
"description": "Preferences/General; group text"
|
||||
|
@ -665,6 +665,22 @@
|
||||
"description": "Preferences/General",
|
||||
"message": "Try to find links in the website text (slower)"
|
||||
},
|
||||
"pref_theme": {
|
||||
"description": "label text",
|
||||
"message": "Theme:"
|
||||
},
|
||||
"pref_theme_dark": {
|
||||
"description": "option text",
|
||||
"message": "Dark"
|
||||
},
|
||||
"pref_theme_default": {
|
||||
"description": "option text",
|
||||
"message": "System/Browser"
|
||||
},
|
||||
"pref_theme_light": {
|
||||
"description": "option text",
|
||||
"message": "Light"
|
||||
},
|
||||
"pref_ui": {
|
||||
"description": "Preferences/General; group text",
|
||||
"message": "User Interface"
|
||||
|
@ -657,6 +657,22 @@
|
||||
"message": "Intentar buscar enlaces en el texto del sitio web (más lento)",
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_theme": {
|
||||
"message": "Tema:",
|
||||
"description": "label text"
|
||||
},
|
||||
"pref_theme_dark": {
|
||||
"message": "Oscuro",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_theme_default": {
|
||||
"message": "Sistema/Navegador",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_theme_light": {
|
||||
"message": "Claro",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_ui": {
|
||||
"message": "Interfaz de usuario",
|
||||
"description": "Preferences/General; group text"
|
||||
|
@ -657,6 +657,22 @@
|
||||
"message": "Ürita leida linke veebisaidi tekstist (aeglasem)",
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_theme": {
|
||||
"message": "Teema:",
|
||||
"description": "label text"
|
||||
},
|
||||
"pref_theme_dark": {
|
||||
"message": "Tume",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_theme_default": {
|
||||
"message": "Süsteem/Veebilehitseja",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_theme_light": {
|
||||
"message": "Hele",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_ui": {
|
||||
"message": "Kasutajaliides",
|
||||
"description": "Preferences/General; group text"
|
||||
|
@ -657,6 +657,22 @@
|
||||
"message": "Tenter de trouver des liens dans le texte du site (lent)",
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_theme": {
|
||||
"message": "Thème:",
|
||||
"description": "label text"
|
||||
},
|
||||
"pref_theme_dark": {
|
||||
"message": "Sombre",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_theme_default": {
|
||||
"message": "Système/Navigateur",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_theme_light": {
|
||||
"message": "Clair",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_ui": {
|
||||
"message": "Interface utilisateur",
|
||||
"description": "Preferences/General; group text"
|
||||
@ -1281,4 +1297,4 @@
|
||||
"message": "Annulé par l'utilisateur",
|
||||
"description": "Error message"
|
||||
}
|
||||
}
|
||||
}
|
@ -657,6 +657,22 @@
|
||||
"message": "Keress hivatkozásokat a honlap szövegében (lassabb)",
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_theme": {
|
||||
"message": "Téma:",
|
||||
"description": "label text"
|
||||
},
|
||||
"pref_theme_dark": {
|
||||
"message": "Sötét",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_theme_default": {
|
||||
"message": "Rendszer/Böngésző",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_theme_light": {
|
||||
"message": "Világos",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_ui": {
|
||||
"message": "Felhasználói felület",
|
||||
"description": "Preferences/General; group text"
|
||||
|
@ -8,7 +8,7 @@
|
||||
"description": "Language code the locale will use, e.g. de or en-GB or pt-BR"
|
||||
},
|
||||
"addpaused": {
|
||||
"message": "一時停止状態で追加",
|
||||
"message": "待機状態で追加",
|
||||
"description": "Action: Add paused"
|
||||
},
|
||||
"add_download": {
|
||||
@ -20,15 +20,15 @@
|
||||
"description": "Button text (adding filters, limits and such)"
|
||||
},
|
||||
"add_paused_once": {
|
||||
"message": "今回は一時停止で追加",
|
||||
"message": "今回は待機状態で追加",
|
||||
"description": "Checkbox label"
|
||||
},
|
||||
"add_paused_question": {
|
||||
"message": "この決定を覚えて、今後新しいダウンロードを常に一時停止で追加しますか?",
|
||||
"message": "この決定を覚えて、今後新しいダウンロードを常に待機状態で追加しますか?",
|
||||
"description": "Messagebox text"
|
||||
},
|
||||
"add_paused_title": {
|
||||
"message": "常に一時停止で追加しますか?",
|
||||
"message": "常に待機状態で追加しますか?",
|
||||
"description": "Title for the add-paused dialog"
|
||||
},
|
||||
"ask_again_later": {
|
||||
@ -570,27 +570,27 @@
|
||||
"description": "Window/tab title; Preferences"
|
||||
},
|
||||
"pref_add_paused": {
|
||||
"message": "すぐに開始せず、新しいダウンロードを一時停止状態で追加する",
|
||||
"message": "すぐに開始せず、新しいダウンロードを待機状態で追加する",
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_button_type": {
|
||||
"message": "DownThemAll! アイコンクリック時:",
|
||||
"message": "DownThemAll! アイコンクリック時:",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_dta": {
|
||||
"message": "DownThemAll! 選択画面",
|
||||
"message": "ダウンロード選択画面",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_manager": {
|
||||
"message": "マネージャを開く",
|
||||
"message": "マネージャを開く",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_popup": {
|
||||
"message": "メニュー展開",
|
||||
"message": "メニュー展開",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_turbo": {
|
||||
"message": "OneClick! ダウンロード",
|
||||
"message": "OneClick! ダウンロード",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_concurrent_downloads": {
|
||||
@ -654,9 +654,25 @@
|
||||
"description": "checkbox text"
|
||||
},
|
||||
"pref_text_links": {
|
||||
"message": "Webサイトの文字列でリンクを見つけてみる (但し、遅い)",
|
||||
"message": "Webサイトの文字列からリンクを抽出する (但し、遅い)",
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_theme": {
|
||||
"message": "テーマ:",
|
||||
"description": "label text"
|
||||
},
|
||||
"pref_theme_dark": {
|
||||
"message": "ダーク",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_theme_default": {
|
||||
"message": "システム/ブラウザのテーマ",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_theme_light": {
|
||||
"message": "ライト",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_ui": {
|
||||
"message": "ユーザーインターフェイス",
|
||||
"description": "Preferences/General; group text"
|
||||
@ -820,7 +836,7 @@
|
||||
"description": "Messagebox text"
|
||||
},
|
||||
"remove_selected_downloads": {
|
||||
"message": "選択を削除",
|
||||
"message": "選択した項目を削除",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"rename": {
|
||||
|
@ -191,6 +191,22 @@
|
||||
"message": "삭제",
|
||||
"description": "button text"
|
||||
},
|
||||
"deletefiles": {
|
||||
"message": "파일 삭제",
|
||||
"description": "menu action"
|
||||
},
|
||||
"deletefiles_button": {
|
||||
"message": "삭제",
|
||||
"description": "button text"
|
||||
},
|
||||
"deletefiles_text": {
|
||||
"message": "정말 다음 파일(들)을 삭제하시겠습니까?",
|
||||
"description": "messagebox text"
|
||||
},
|
||||
"deletefiles_title": {
|
||||
"message": "파일 삭제",
|
||||
"description": "messagebox title"
|
||||
},
|
||||
"description": {
|
||||
"message": "설명",
|
||||
"description": "Description (keep it short); e.g. the description column in select"
|
||||
@ -275,10 +291,34 @@
|
||||
"message": "잘못된 URL",
|
||||
"description": "Error message; single window"
|
||||
},
|
||||
"error_noabsolutepath": {
|
||||
"message": "하위 폴더의 절대 경로는 브라우저에서 지원되지 않습니다",
|
||||
"description": "Error Message; select/single window"
|
||||
},
|
||||
"error_nodotsinpath": {
|
||||
"message": "하위 폴더의 점(.)은 브라우저에서 지원되지 않습니다",
|
||||
"description": "Error Message; select/single window"
|
||||
},
|
||||
"error_noItemsSelected": {
|
||||
"message": "선택된 항목 없음",
|
||||
"description": "Error Message; select window"
|
||||
},
|
||||
"export": {
|
||||
"message": "파일로 내보내기",
|
||||
"description": "menu text"
|
||||
},
|
||||
"export_aria2": {
|
||||
"message": "aria2 리스트로 내보내기",
|
||||
"description": "menu text"
|
||||
},
|
||||
"export_metalink": {
|
||||
"message": "메타링크로 내보내기",
|
||||
"description": "menu text"
|
||||
},
|
||||
"export_text": {
|
||||
"message": "텍스트로 내보내기",
|
||||
"description": "menu text"
|
||||
},
|
||||
"extensionDescription": {
|
||||
"message": "브라우저용 대량 다운로더",
|
||||
"description": "DownThemAll! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one"
|
||||
@ -331,6 +371,10 @@
|
||||
"message": "강제 시작",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"import": {
|
||||
"message": "파일에서 가져오기",
|
||||
"description": "menu text"
|
||||
},
|
||||
"information_title": {
|
||||
"message": "정보",
|
||||
"description": "Used in message boxes"
|
||||
@ -529,6 +573,26 @@
|
||||
"message": "새 다운로드를 즉시 시작하는 대신 일시중지로 추가",
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_button_type": {
|
||||
"message": "DownThemAll! 버튼:",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_dta": {
|
||||
"message": "DownThemAll! 선택",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_manager": {
|
||||
"message": "관리자 열기",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_popup": {
|
||||
"message": "팝업 메뉴",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_turbo": {
|
||||
"message": "OneClick!",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_concurrent_downloads": {
|
||||
"message": "동시 다운로드",
|
||||
"description": "Preferences/Network"
|
||||
@ -537,10 +601,6 @@
|
||||
"message": "다운로드 대기열이 끝나면 알림 표시",
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_global_turbo": {
|
||||
"message": "브라우저 버튼을 OneClick!으로 작동",
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_hide_context": {
|
||||
"message": "일반 컨텍스트 메뉴 항목 표시 안 함",
|
||||
"description": "Preferences/General"
|
||||
@ -549,6 +609,10 @@
|
||||
"message": "관리자",
|
||||
"description": "Preferences/General; group text"
|
||||
},
|
||||
"pref_manager_in_popup": {
|
||||
"message": "새 팝업 창에 관리자 열기",
|
||||
"description": "checkbox text"
|
||||
},
|
||||
"pref_manager_tooltip": {
|
||||
"message": "관리자 탭에서 툴팁 표시",
|
||||
"description": "Preferences/General"
|
||||
@ -573,10 +637,22 @@
|
||||
"message": "다시 시작한 후 누락된 다운로드 제거",
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_retries": {
|
||||
"message": "일시적인 오류에 대한 다운로드 재시도 횟수",
|
||||
"description": "pref text"
|
||||
},
|
||||
"pref_retry_time": {
|
||||
"message": "재시도 간격 (분)",
|
||||
"description": "pref text"
|
||||
},
|
||||
"pref_show_urls": {
|
||||
"message": "이름 대신 URL 표시",
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_sounds": {
|
||||
"message": "소리 재생",
|
||||
"description": "checkbox text"
|
||||
},
|
||||
"pref_text_links": {
|
||||
"message": "웹 사이트 텍스트에서 링크를 찾도록 시도 (느림)",
|
||||
"description": "Preferences/General"
|
||||
@ -895,6 +971,20 @@
|
||||
"message": "계속",
|
||||
"description": "Action for resuming a download"
|
||||
},
|
||||
"retrying": {
|
||||
"message": "재시도중",
|
||||
"description": "Status text"
|
||||
},
|
||||
"retrying_error": {
|
||||
"message": "재시도중 - $ERROR$",
|
||||
"description": "status text",
|
||||
"placeholders": {
|
||||
"error": {
|
||||
"content": "$1",
|
||||
"example": "Server Error"
|
||||
}
|
||||
}
|
||||
},
|
||||
"running": {
|
||||
"message": "실행중",
|
||||
"description": "Status text"
|
||||
@ -943,6 +1033,18 @@
|
||||
"message": "이름 바꾸기 마스크 설정",
|
||||
"description": "Menu text; select window"
|
||||
},
|
||||
"set_mask_text": {
|
||||
"message": "새 이름 바꾸기 마스크 설정",
|
||||
"description": "dialog text"
|
||||
},
|
||||
"set_referrer": {
|
||||
"message": "참조 페이지 설정",
|
||||
"description": "menu text"
|
||||
},
|
||||
"set_referrer_text": {
|
||||
"message": "새 참조 페이지 설정",
|
||||
"description": "dialog text"
|
||||
},
|
||||
"single_batchexamples": {
|
||||
"message": "일괄 처리가 지원됩니다, 예:",
|
||||
"description": "Header text; single window"
|
||||
@ -1123,6 +1225,14 @@
|
||||
"message": "새 다운로드가 시작되지 않습니다",
|
||||
"description": "Status bar tooltip; manager network icon"
|
||||
},
|
||||
"subfolder": {
|
||||
"message": "하위 폴더",
|
||||
"description": "label text"
|
||||
},
|
||||
"subfolder_placeholder": {
|
||||
"message": "다운로드 디렉토리 내의 이 하위 폴더에 파일을 저장합니다",
|
||||
"description": "placeholder text within an input box"
|
||||
},
|
||||
"title": {
|
||||
"message": "제목",
|
||||
"description": "Column text; Title label (short)"
|
||||
@ -1166,5 +1276,9 @@
|
||||
"useonlyonce": {
|
||||
"message": "한번만",
|
||||
"description": "Label for Use-Once checkboxes"
|
||||
},
|
||||
"USER_CANCELED": {
|
||||
"message": "사용자 취소",
|
||||
"description": "Error message"
|
||||
}
|
||||
}
|
@ -657,6 +657,22 @@
|
||||
"message": "Bandyti tinklalapio tekste rasti nuorodas (lėčiau)",
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_theme": {
|
||||
"message": "Tema:",
|
||||
"description": "label text"
|
||||
},
|
||||
"pref_theme_dark": {
|
||||
"message": "Tamsi",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_theme_default": {
|
||||
"message": "Sistemos/Naršyklės",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_theme_light": {
|
||||
"message": "Šviesi",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_ui": {
|
||||
"message": "Naudotojo sąsaja",
|
||||
"description": "Preferences/General; group text"
|
||||
|
@ -156,7 +156,7 @@
|
||||
"description": "Filter label for the Archives filter"
|
||||
},
|
||||
"deffilter_aud": {
|
||||
"message": "Audio (mp3, flac, wav, …)",
|
||||
"message": "Dźwięk (mp3, flac, wav, …)",
|
||||
"description": "Filter label for the Audio filter"
|
||||
},
|
||||
"deffilter_bin": {
|
||||
@ -657,6 +657,22 @@
|
||||
"message": "Spróbuj znaleźć linki w treści strony internetowej (wolniejsze)",
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_theme": {
|
||||
"message": "Motyw:",
|
||||
"description": "label text"
|
||||
},
|
||||
"pref_theme_dark": {
|
||||
"message": "Ciemny",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_theme_default": {
|
||||
"message": "Systemowy/Przeglądarki",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_theme_light": {
|
||||
"message": "Jasny",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_ui": {
|
||||
"message": "Interfejs Użytkownika",
|
||||
"description": "Preferences/General; group text"
|
||||
|
@ -657,6 +657,22 @@
|
||||
"message": "Tentar encontrar links no texto do site (mais lento)",
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_theme": {
|
||||
"message": "Tema:",
|
||||
"description": "label text"
|
||||
},
|
||||
"pref_theme_dark": {
|
||||
"message": "Escuro",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_theme_default": {
|
||||
"message": "Sistema/Navegador",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_theme_light": {
|
||||
"message": "Claro",
|
||||
"description": "option text"
|
||||
},
|
||||
"pref_ui": {
|
||||
"message": "Interface de usuário",
|
||||
"description": "Preferences/General; group text"
|
||||
|
@ -17,6 +17,7 @@
|
||||
"remove-missing-on-init": false,
|
||||
"retries": 5,
|
||||
"retry-time": 10,
|
||||
"theme": "default",
|
||||
"limits": [
|
||||
{
|
||||
"domain": "*",
|
||||
|
476
docs/changelog/index.html
Normal file
@ -0,0 +1,476 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<!-- License: Creative Commons Attribution-ShareAlike 4.0 International License -->
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>DownThemAll! Changes</title>
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: "Reenie Beanie";
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: block;
|
||||
src: local("Reenie Beanie"), local("ReenieBeanie"),
|
||||
url(res/ReenieBeanie-Regular.woff2) format("woff2");
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
|
||||
U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
|
||||
U+FEFF, U+FFFD;
|
||||
}
|
||||
|
||||
:root {
|
||||
--content-width: 1000px;
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Ubuntu",
|
||||
"Helvetica Neue", sans-serif;
|
||||
font-size: 12pt;
|
||||
color: rgb(20, 20, 20);
|
||||
background: white;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
display: grid;
|
||||
background: white repeat-x url(res/background-tile.png);
|
||||
grid-template-columns: 1fr [content] auto 1fr;
|
||||
grid-template-rows: auto 1fr auto;
|
||||
grid-template-areas:
|
||||
". header ."
|
||||
". content ."
|
||||
"footer footer footer";
|
||||
}
|
||||
|
||||
a {
|
||||
color: rgb(30, 30, 70);
|
||||
}
|
||||
|
||||
li {
|
||||
list-style-type: circle;
|
||||
}
|
||||
|
||||
nav {
|
||||
max-width: var(--content-width);
|
||||
grid-area: header;
|
||||
display: flex;
|
||||
box-sizing: border-box;
|
||||
padding-right: 120px;
|
||||
padding-top: 1em;
|
||||
padding-left: 32px;
|
||||
align-content: center;
|
||||
align-items: baseline;
|
||||
background: no-repeat top right url(res/halo.svg);
|
||||
background-size: 120px;
|
||||
min-height: 100px;
|
||||
text-shadow: rgba(255, 255, 255, 0.8) 1px 3px 0px;
|
||||
font-family: "Reenie Beanie", cursive;
|
||||
}
|
||||
|
||||
nav h1,
|
||||
nav h2 {
|
||||
margin: 0;
|
||||
margin-right: 1ex;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
nav h1 {
|
||||
font-size: 400%;
|
||||
}
|
||||
|
||||
nav h2 {
|
||||
font-size: 250%;
|
||||
}
|
||||
|
||||
article {
|
||||
max-width: var(--content-width);
|
||||
grid-area: content;
|
||||
box-sizing: border-box;
|
||||
padding: 1ex 32px;
|
||||
background: white;
|
||||
border-bottom: 0;
|
||||
border-radius: 20px;
|
||||
border-bottom-left-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
|
||||
h3 em {
|
||||
display: inline-block;
|
||||
padding-left: 1em;
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
#paypal {
|
||||
margin: 1em;
|
||||
display: grid;
|
||||
grid-template-columns: auto auto auto auto auto;
|
||||
grid-row-gap: 1em;
|
||||
grid-column-gap: 1em;
|
||||
justify-content: center;
|
||||
justify-items: center;
|
||||
}
|
||||
|
||||
footer {
|
||||
display: grid;
|
||||
grid-template-columns: auto 1fr auto;
|
||||
grid-column-gap: 2em;
|
||||
padding: 2em 2em 1em 2em;
|
||||
background: transparent center top repeat-x url(res/footerbg.png);
|
||||
font-size: x-small;
|
||||
color: gray;
|
||||
grid-area: footer;
|
||||
}
|
||||
|
||||
footer p {
|
||||
margin: 0.3ex 0;
|
||||
}
|
||||
|
||||
#logo {
|
||||
width: 48px;
|
||||
align-self: center;
|
||||
opacity: 0.7;
|
||||
filter: grayscale(90%);
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 750px) {
|
||||
nav {
|
||||
flex-direction: column;
|
||||
margin-bottom: 1em;
|
||||
padding-right: 120px;
|
||||
}
|
||||
|
||||
nav h1 {
|
||||
font-size: 275%;
|
||||
}
|
||||
|
||||
nav h2 {
|
||||
font-size: 220%;
|
||||
}
|
||||
|
||||
#paypal {
|
||||
grid-template-columns: auto auto;
|
||||
}
|
||||
|
||||
#homepage {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<nav>
|
||||
<h1>DownThemAll!</h1>
|
||||
<h2>Changes</h2>
|
||||
</nav>
|
||||
<article>
|
||||
<h3>DownThemAll needs your support!</h3>
|
||||
<section id="paypal">
|
||||
<a href="https://www.paypal.me/NilsMaier/10" title="Donate €10" target="_blank">
|
||||
<svg viewBox="0 0 300 72" width=110>
|
||||
<rect x="1.5" y="1.5" width="297" height="69" ry="34.093" fill="#ffc439" fill-rule="evenodd" stroke="#dadce0"
|
||||
stroke-dashoffset="89.999" stroke-linejoin="round" stroke-width="3" style="paint-order:normal" />
|
||||
<g transform="translate(28.855)">
|
||||
<path
|
||||
d="m42.414 58.373 0.83858-5.284-1.868-0.04295h-8.9197l6.1988-38.991c0.01924-0.1177 0.08177-0.22746 0.17317-0.3054 0.09139-0.07794 0.20844-0.12089 0.3303-0.12089h15.04c4.993 0 8.4387 1.0307 10.238 3.0651 0.84339 0.95437 1.3805 1.9517 1.6403 3.0492 0.27258 1.1516 0.27739 2.5275 0.01122 4.2056l-0.01924 0.12248v1.0753l0.84339 0.474c0.71031 0.37379 1.2747 0.80167 1.7076 1.2916 0.72153 0.81599 1.1881 1.8531 1.3853 3.0826 0.20363 1.2645 0.13629 2.7693-0.19722 4.4728-0.38482 1.9596-1.0069 3.6664-1.8471 5.0629-0.77284 1.2868-1.7573 2.3541-2.9262 3.1812-1.116 0.78576-2.442 1.3822-3.9412 1.764-1.4527 0.37538-3.109 0.56467-4.9257 0.56467h-1.1705c-0.83698 0-1.6499 0.29904-2.2881 0.83507-0.63976 0.54717-1.0631 1.2948-1.1929 2.1123l-0.08819 0.47559-1.4815 9.3131-0.06734 0.34198c-0.01764 0.10816-0.0481 0.16224-0.093 0.19883-0.04008 0.0334-0.09781 0.05567-0.15393 0.05567z"
|
||||
fill="#253b80" />
|
||||
<path
|
||||
d="m67.719 24.195c-0.0449 0.28472-0.0962 0.5758-0.15393 0.87484-1.9834 10.102-8.769 13.592-17.435 13.592h-4.4126c-1.0598 0-1.9529 0.7635-2.1181 1.8006l-2.2592 14.214-0.63976 4.029c-0.10743 0.68078 0.4217 1.2948 1.1144 1.2948h7.8262c0.92677 0 1.714-0.66806 1.8599-1.5747l0.07696-0.39447 1.4735-9.2765 0.0946-0.509c0.14431-0.90983 0.93318-1.5779 1.8599-1.5779h1.1705c7.5825 0 13.518-3.054 15.253-11.891 0.72474-3.6918 0.34954-6.7744-1.5681-8.9424-0.58043-0.65374-1.3004-1.1961-2.1421-1.6383z"
|
||||
fill="#179bd7" />
|
||||
<path
|
||||
d="m65.644 23.374c-0.30304-0.08748-0.61571-0.16702-0.93639-0.23859-0.32228-0.06999-0.65259-0.13202-0.99251-0.1861-1.1897-0.19087-2.4933-0.28154-3.8899-0.28154h-11.788c-0.29022 0-0.566 0.06522-0.81293 0.18292-0.54355 0.25927-0.94761 0.76986-1.0454 1.395l-2.5077 15.757-0.07215 0.45969c0.16515-1.0371 1.0582-1.8006 2.1181-1.8006h4.4126c8.6664 0 15.452-3.4914 17.435-13.592 0.05933-0.29904 0.10903-0.59012 0.15393-0.87484-0.50187-0.26404-1.0454-0.48991-1.6307-0.68237-0.14431-0.04772-0.29342-0.09385-0.44414-0.13838z"
|
||||
fill="#222d65" />
|
||||
<path
|
||||
d="m46.179 24.246c0.09781-0.62511 0.50187-1.1357 1.0454-1.3934 0.24853-0.11771 0.52271-0.18292 0.81293-0.18292h11.788c1.3966 0 2.7001 0.09066 3.8899 0.28154 0.33992 0.05408 0.67022 0.11612 0.99251 0.1861 0.32068 0.07158 0.63334 0.15111 0.93639 0.23859 0.15072 0.04454 0.29984 0.09067 0.44575 0.13679 0.58524 0.19246 1.1288 0.41992 1.6307 0.68237 0.59005-3.7332-0.0048-6.275-2.0395-8.5766-2.2432-2.5338-6.2918-3.6186-11.472-3.6186h-15.04c-1.0582 0-1.961 0.7635-2.1245 1.8022l-6.2645 39.392c-0.12346 0.7794 0.48262 1.4825 1.2747 1.4825h9.2853l2.3314-14.673z"
|
||||
fill="#253b80" />
|
||||
</g>
|
||||
<g transform="matrix(1.004 0 0 .996 4.7854 0)" fill="#009cde" stroke="#003087" stroke-width="1px"
|
||||
aria-label="10">
|
||||
<path
|
||||
d="m173.05 47.333h7.9336v-22.517l-8.1436 1.6801v-6.1135l8.0969-1.6801h8.5403v28.631h7.9336v6.2069h-24.361z" />
|
||||
<path
|
||||
d="m225.67 36.086q0-6.5335-1.2367-9.1936-1.2134-2.6834-4.1068-2.6834t-4.1301 2.6834q-1.2367 2.6601-1.2367 9.1936 0 6.6035 1.2367 9.3103 1.2367 2.7067 4.1301 2.7067 2.8701 0 4.1068-2.7067t1.2367-9.3103zm8.9836 0.07q0 8.6569-3.7334 13.37-3.7334 4.6901-10.594 4.6901-6.8835 0-10.617-4.6901-3.7334-4.7135-3.7334-13.37 0-8.6803 3.7334-13.37 3.7334-4.7135 10.617-4.7135 6.8602 0 10.594 4.7135 3.7334 4.6901 3.7334 13.37z" />
|
||||
</g>
|
||||
<g transform="matrix(1.004 0 0 .996 4.7854 0)" fill="#003087" aria-label="€">
|
||||
<path
|
||||
d="m153.83 51.627q-2.2167 1.2834-4.6435 1.9367-2.4034 0.65335-5.0168 0.65335-6.1135 0-10.314-3.0334-4.1768-3.0568-5.9268-8.7736h-5.0635l2.0534-4.5501h2.2867q-0.0233-0.32668-0.0467-0.67669 0-0.37334 0-1.0267 0-0.67669 0-1.05 0.0233-0.37334 0.0467-0.72336h-4.3401l2.0534-4.5501h3.0101q1.7967-5.7402 5.9502-8.7503 4.1768-3.0101 10.29-3.0101 2.6134 0 5.0168 0.65335 2.4267 0.65335 4.6435 1.9367v7.2102q-1.8901-1.8201-4.0368-2.7301-2.1467-0.93336-4.4568-0.93336-2.9634 0-5.0635 1.4467-2.0767 1.4234-3.1268 4.1768h12.577l-2.0067 4.5501h-11.504q-0.0467 0.37334-0.07 0.79336 0 0.42001 0 1.26 0 0.30334 0 0.67669 0.0233 0.35001 0.0467 0.74669h10.01l-2.0767 4.5501h-6.9769q1.1667 2.8468 3.1968 4.2701 2.0534 1.4234 4.9935 1.4234 2.3101 0 4.4101-0.91003 2.1234-0.93336 4.0835-2.7768z"
|
||||
fill="#003087" stroke-width="1px" />
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
</a>
|
||||
<a href="https://www.paypal.me/NilsMaier/15" title="Donate €15" target="_blank">
|
||||
<svg viewBox="0 0 300 72" width="110">
|
||||
<rect x="1.5" y="1.5" width="297" height="69" ry="34.093" fill="#ffc439" fill-rule="evenodd" stroke="#dadce0"
|
||||
stroke-dashoffset="89.999" stroke-linejoin="round" stroke-width="3" style="paint-order:normal" />
|
||||
<g transform="translate(28.855)">
|
||||
<path
|
||||
d="m42.414 58.373 0.83858-5.284-1.868-0.04295h-8.9197l6.1988-38.991c0.01924-0.1177 0.08177-0.22746 0.17317-0.3054 0.09139-0.07794 0.20844-0.12089 0.3303-0.12089h15.04c4.993 0 8.4387 1.0307 10.238 3.0651 0.84339 0.95437 1.3805 1.9517 1.6403 3.0492 0.27258 1.1516 0.27739 2.5275 0.01122 4.2056l-0.01924 0.12248v1.0753l0.84339 0.474c0.71031 0.37379 1.2747 0.80167 1.7076 1.2916 0.72153 0.81599 1.1881 1.8531 1.3853 3.0826 0.20363 1.2645 0.13629 2.7693-0.19722 4.4728-0.38482 1.9596-1.0069 3.6664-1.8471 5.0629-0.77284 1.2868-1.7573 2.3541-2.9262 3.1812-1.116 0.78576-2.442 1.3822-3.9412 1.764-1.4527 0.37538-3.109 0.56467-4.9257 0.56467h-1.1705c-0.83698 0-1.6499 0.29904-2.2881 0.83507-0.63976 0.54717-1.0631 1.2948-1.1929 2.1123l-0.08819 0.47559-1.4815 9.3131-0.06734 0.34198c-0.01764 0.10816-0.0481 0.16224-0.093 0.19883-0.04008 0.0334-0.09781 0.05567-0.15393 0.05567z"
|
||||
fill="#253b80" />
|
||||
<path
|
||||
d="m67.719 24.195c-0.0449 0.28472-0.0962 0.5758-0.15393 0.87484-1.9834 10.102-8.769 13.592-17.435 13.592h-4.4126c-1.0598 0-1.9529 0.7635-2.1181 1.8006l-2.2592 14.214-0.63976 4.029c-0.10743 0.68078 0.4217 1.2948 1.1144 1.2948h7.8262c0.92677 0 1.714-0.66806 1.8599-1.5747l0.07696-0.39447 1.4735-9.2765 0.0946-0.509c0.14431-0.90983 0.93318-1.5779 1.8599-1.5779h1.1705c7.5825 0 13.518-3.054 15.253-11.891 0.72474-3.6918 0.34954-6.7744-1.5681-8.9424-0.58043-0.65374-1.3004-1.1961-2.1421-1.6383z"
|
||||
fill="#179bd7" />
|
||||
<path
|
||||
d="m65.644 23.374c-0.30304-0.08748-0.61571-0.16702-0.93639-0.23859-0.32228-0.06999-0.65259-0.13202-0.99251-0.1861-1.1897-0.19087-2.4933-0.28154-3.8899-0.28154h-11.788c-0.29022 0-0.566 0.06522-0.81293 0.18292-0.54355 0.25927-0.94761 0.76986-1.0454 1.395l-2.5077 15.757-0.07215 0.45969c0.16515-1.0371 1.0582-1.8006 2.1181-1.8006h4.4126c8.6664 0 15.452-3.4914 17.435-13.592 0.05933-0.29904 0.10903-0.59012 0.15393-0.87484-0.50187-0.26404-1.0454-0.48991-1.6307-0.68237-0.14431-0.04772-0.29342-0.09385-0.44414-0.13838z"
|
||||
fill="#222d65" />
|
||||
<path
|
||||
d="m46.179 24.246c0.09781-0.62511 0.50187-1.1357 1.0454-1.3934 0.24853-0.11771 0.52271-0.18292 0.81293-0.18292h11.788c1.3966 0 2.7001 0.09066 3.8899 0.28154 0.33992 0.05408 0.67022 0.11612 0.99251 0.1861 0.32068 0.07158 0.63334 0.15111 0.93639 0.23859 0.15072 0.04454 0.29984 0.09067 0.44575 0.13679 0.58524 0.19246 1.1288 0.41992 1.6307 0.68237 0.59005-3.7332-0.0048-6.275-2.0395-8.5766-2.2432-2.5338-6.2918-3.6186-11.472-3.6186h-15.04c-1.0582 0-1.961 0.7635-2.1245 1.8022l-6.2645 39.392c-0.12346 0.7794 0.48262 1.4825 1.2747 1.4825h9.2853l2.3314-14.673z"
|
||||
fill="#253b80" />
|
||||
</g>
|
||||
<g transform="matrix(1.004 0 0 .996 4.7854 0)" fill="#009cde" opacity=".75" stroke="#003087"
|
||||
stroke-width="1px" aria-label="15">
|
||||
<path
|
||||
d="m173.05 47.333h7.9336v-22.517l-8.1436 1.6801v-6.1135l8.0969-1.6801h8.5403v28.631h7.9336v6.2069h-24.361z" />
|
||||
<path
|
||||
d="m208.75 18.702h22.331v6.6035h-15.167v5.3902q1.0267-0.28001 2.0534-0.42001 1.05-0.16334 2.1701-0.16334 6.3702 0 9.917 3.1968 3.5468 3.1734 3.5468 8.8669 0 5.6468-3.8734 8.8436-3.8501 3.1968-10.71 3.1968-2.9634 0-5.8802-0.58335-2.8934-0.56002-5.7635-1.7267v-7.0702q2.8468 1.6334 5.3902 2.4501 2.5667 0.81669 4.8302 0.81669 3.2668 0 5.1335-1.5867 1.89-1.61 1.89-4.3401 0-2.7534-1.89-4.3401-1.8667-1.5867-5.1335-1.5867-1.9367 0-4.1301 0.51335-2.1934 0.49002-4.7135 1.54z" />
|
||||
</g>
|
||||
<g transform="matrix(1.004 0 0 .996 4.7854 0)" fill="#003087" aria-label="€">
|
||||
<path
|
||||
d="m153.83 51.627q-2.2167 1.2834-4.6435 1.9367-2.4034 0.65335-5.0168 0.65335-6.1135 0-10.314-3.0334-4.1768-3.0568-5.9268-8.7736h-5.0635l2.0534-4.5501h2.2867q-0.0233-0.32668-0.0467-0.67669 0-0.37334 0-1.0267 0-0.67669 0-1.05 0.0233-0.37334 0.0467-0.72336h-4.3401l2.0534-4.5501h3.0101q1.7967-5.7402 5.9502-8.7503 4.1768-3.0101 10.29-3.0101 2.6134 0 5.0168 0.65335 2.4267 0.65335 4.6435 1.9367v7.2102q-1.8901-1.8201-4.0368-2.7301-2.1467-0.93336-4.4568-0.93336-2.9634 0-5.0635 1.4467-2.0767 1.4234-3.1268 4.1768h12.577l-2.0067 4.5501h-11.504q-0.0467 0.37334-0.07 0.79336 0 0.42001 0 1.26 0 0.30334 0 0.67669 0.0233 0.35001 0.0467 0.74669h10.01l-2.0767 4.5501h-6.9769q1.1667 2.8468 3.1968 4.2701 2.0534 1.4234 4.9935 1.4234 2.3101 0 4.4101-0.91003 2.1234-0.93336 4.0835-2.7768z"
|
||||
fill="#003087" stroke-width="1px" />
|
||||
</g>
|
||||
</svg>
|
||||
</a>
|
||||
<a href="https://www.paypal.me/NilsMaier/20" title="Donate €20" target="_blank">
|
||||
<svg viewBox="0 0 300 72" width="110">
|
||||
<rect x="1.5" y="1.5" width="297" height="69" ry="34.093" fill="#ffc439" fill-rule="evenodd" stroke="#dadce0"
|
||||
stroke-dashoffset="89.999" stroke-linejoin="round" stroke-width="3" style="paint-order:normal" />
|
||||
<g transform="translate(28.855)">
|
||||
<path
|
||||
d="m42.414 58.373 0.83858-5.284-1.868-0.04295h-8.9197l6.1988-38.991c0.01924-0.1177 0.08177-0.22746 0.17317-0.3054 0.09139-0.07794 0.20844-0.12089 0.3303-0.12089h15.04c4.993 0 8.4387 1.0307 10.238 3.0651 0.84339 0.95437 1.3805 1.9517 1.6403 3.0492 0.27258 1.1516 0.27739 2.5275 0.01122 4.2056l-0.01924 0.12248v1.0753l0.84339 0.474c0.71031 0.37379 1.2747 0.80167 1.7076 1.2916 0.72153 0.81599 1.1881 1.8531 1.3853 3.0826 0.20363 1.2645 0.13629 2.7693-0.19722 4.4728-0.38482 1.9596-1.0069 3.6664-1.8471 5.0629-0.77284 1.2868-1.7573 2.3541-2.9262 3.1812-1.116 0.78576-2.442 1.3822-3.9412 1.764-1.4527 0.37538-3.109 0.56467-4.9257 0.56467h-1.1705c-0.83698 0-1.6499 0.29904-2.2881 0.83507-0.63976 0.54717-1.0631 1.2948-1.1929 2.1123l-0.08819 0.47559-1.4815 9.3131-0.06734 0.34198c-0.01764 0.10816-0.0481 0.16224-0.093 0.19883-0.04008 0.0334-0.09781 0.05567-0.15393 0.05567z"
|
||||
fill="#253b80" />
|
||||
<path
|
||||
d="m67.719 24.195c-0.0449 0.28472-0.0962 0.5758-0.15393 0.87484-1.9834 10.102-8.769 13.592-17.435 13.592h-4.4126c-1.0598 0-1.9529 0.7635-2.1181 1.8006l-2.2592 14.214-0.63976 4.029c-0.10743 0.68078 0.4217 1.2948 1.1144 1.2948h7.8262c0.92677 0 1.714-0.66806 1.8599-1.5747l0.07696-0.39447 1.4735-9.2765 0.0946-0.509c0.14431-0.90983 0.93318-1.5779 1.8599-1.5779h1.1705c7.5825 0 13.518-3.054 15.253-11.891 0.72474-3.6918 0.34954-6.7744-1.5681-8.9424-0.58043-0.65374-1.3004-1.1961-2.1421-1.6383z"
|
||||
fill="#179bd7" />
|
||||
<path
|
||||
d="m65.644 23.374c-0.30304-0.08748-0.61571-0.16702-0.93639-0.23859-0.32228-0.06999-0.65259-0.13202-0.99251-0.1861-1.1897-0.19087-2.4933-0.28154-3.8899-0.28154h-11.788c-0.29022 0-0.566 0.06522-0.81293 0.18292-0.54355 0.25927-0.94761 0.76986-1.0454 1.395l-2.5077 15.757-0.07215 0.45969c0.16515-1.0371 1.0582-1.8006 2.1181-1.8006h4.4126c8.6664 0 15.452-3.4914 17.435-13.592 0.05933-0.29904 0.10903-0.59012 0.15393-0.87484-0.50187-0.26404-1.0454-0.48991-1.6307-0.68237-0.14431-0.04772-0.29342-0.09385-0.44414-0.13838z"
|
||||
fill="#222d65" />
|
||||
<path
|
||||
d="m46.179 24.246c0.09781-0.62511 0.50187-1.1357 1.0454-1.3934 0.24853-0.11771 0.52271-0.18292 0.81293-0.18292h11.788c1.3966 0 2.7001 0.09066 3.8899 0.28154 0.33992 0.05408 0.67022 0.11612 0.99251 0.1861 0.32068 0.07158 0.63334 0.15111 0.93639 0.23859 0.15072 0.04454 0.29984 0.09067 0.44575 0.13679 0.58524 0.19246 1.1288 0.41992 1.6307 0.68237 0.59005-3.7332-0.0048-6.275-2.0395-8.5766-2.2432-2.5338-6.2918-3.6186-11.472-3.6186h-15.04c-1.0582 0-1.961 0.7635-2.1245 1.8022l-6.2645 39.392c-0.12346 0.7794 0.48262 1.4825 1.2747 1.4825h9.2853l2.3314-14.673z"
|
||||
fill="#253b80" />
|
||||
</g>
|
||||
<g transform="matrix(1.004 0 0 .996 4.7854 0)" fill="#009cde" stroke="#003087" stroke-width="1px"
|
||||
aria-label="20">
|
||||
<path
|
||||
d="m181.22 46.936h15.33v6.6035h-25.317v-6.6035l12.717-11.224q1.7034-1.54 2.5201-3.0101 0.81669-1.47 0.81669-3.0568 0-2.4501-1.6567-3.9435-1.6334-1.4934-4.3635-1.4934-2.1001 0-4.5968 0.91003-2.4968 0.88669-5.3435 2.6601v-7.6536q3.0334-1.0034 5.9968-1.5167 2.9634-0.53668 5.8102-0.53668 6.2535 0 9.707 2.7534 3.4768 2.7534 3.4768 7.6769 0 2.8468-1.47 5.3202-1.47 2.4501-6.1835 6.5802z" />
|
||||
<path
|
||||
d="m225.67 36.086q0-6.5335-1.2367-9.1936-1.2134-2.6834-4.1068-2.6834t-4.1301 2.6834q-1.2367 2.6601-1.2367 9.1936 0 6.6035 1.2367 9.3103 1.2367 2.7067 4.1301 2.7067 2.8701 0 4.1068-2.7067t1.2367-9.3103zm8.9836 0.07q0 8.6569-3.7334 13.37-3.7334 4.6901-10.594 4.6901-6.8835 0-10.617-4.6901-3.7334-4.7135-3.7334-13.37 0-8.6803 3.7334-13.37 3.7334-4.7135 10.617-4.7135 6.8602 0 10.594 4.7135 3.7334 4.6901 3.7334 13.37z" />
|
||||
</g>
|
||||
<g transform="matrix(1.004 0 0 .996 4.7854 0)" fill="#003087" aria-label="€">
|
||||
<path
|
||||
d="m153.83 51.627q-2.2167 1.2834-4.6435 1.9367-2.4034 0.65335-5.0168 0.65335-6.1135 0-10.314-3.0334-4.1768-3.0568-5.9268-8.7736h-5.0635l2.0534-4.5501h2.2867q-0.0233-0.32668-0.0467-0.67669 0-0.37334 0-1.0267 0-0.67669 0-1.05 0.0233-0.37334 0.0467-0.72336h-4.3401l2.0534-4.5501h3.0101q1.7967-5.7402 5.9502-8.7503 4.1768-3.0101 10.29-3.0101 2.6134 0 5.0168 0.65335 2.4267 0.65335 4.6435 1.9367v7.2102q-1.8901-1.8201-4.0368-2.7301-2.1467-0.93336-4.4568-0.93336-2.9634 0-5.0635 1.4467-2.0767 1.4234-3.1268 4.1768h12.577l-2.0067 4.5501h-11.504q-0.0467 0.37334-0.07 0.79336 0 0.42001 0 1.26 0 0.30334 0 0.67669 0.0233 0.35001 0.0467 0.74669h10.01l-2.0767 4.5501h-6.9769q1.1667 2.8468 3.1968 4.2701 2.0534 1.4234 4.9935 1.4234 2.3101 0 4.4101-0.91003 2.1234-0.93336 4.0835-2.7768z"
|
||||
fill="#003087" stroke-width="1px" />
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
</a>
|
||||
<a href="https://www.paypal.me/NilsMaier/30" title="Donate €30" target="_blank">
|
||||
<svg viewBox="0 0 300 72" width="110">
|
||||
<rect x="1.5" y="1.5" width="297" height="69" ry="34.093" fill="#ffc439" fill-rule="evenodd" stroke="#dadce0"
|
||||
stroke-dashoffset="89.999" stroke-linejoin="round" stroke-width="3" style="paint-order:normal" />
|
||||
<g transform="translate(28.855)">
|
||||
<path
|
||||
d="m42.414 58.373 0.83858-5.284-1.868-0.04295h-8.9197l6.1988-38.991c0.01924-0.1177 0.08177-0.22746 0.17317-0.3054 0.09139-0.07794 0.20844-0.12089 0.3303-0.12089h15.04c4.993 0 8.4387 1.0307 10.238 3.0651 0.84339 0.95437 1.3805 1.9517 1.6403 3.0492 0.27258 1.1516 0.27739 2.5275 0.01122 4.2056l-0.01924 0.12248v1.0753l0.84339 0.474c0.71031 0.37379 1.2747 0.80167 1.7076 1.2916 0.72153 0.81599 1.1881 1.8531 1.3853 3.0826 0.20363 1.2645 0.13629 2.7693-0.19722 4.4728-0.38482 1.9596-1.0069 3.6664-1.8471 5.0629-0.77284 1.2868-1.7573 2.3541-2.9262 3.1812-1.116 0.78576-2.442 1.3822-3.9412 1.764-1.4527 0.37538-3.109 0.56467-4.9257 0.56467h-1.1705c-0.83698 0-1.6499 0.29904-2.2881 0.83507-0.63976 0.54717-1.0631 1.2948-1.1929 2.1123l-0.08819 0.47559-1.4815 9.3131-0.06734 0.34198c-0.01764 0.10816-0.0481 0.16224-0.093 0.19883-0.04008 0.0334-0.09781 0.05567-0.15393 0.05567z"
|
||||
fill="#253b80" />
|
||||
<path
|
||||
d="m67.719 24.195c-0.0449 0.28472-0.0962 0.5758-0.15393 0.87484-1.9834 10.102-8.769 13.592-17.435 13.592h-4.4126c-1.0598 0-1.9529 0.7635-2.1181 1.8006l-2.2592 14.214-0.63976 4.029c-0.10743 0.68078 0.4217 1.2948 1.1144 1.2948h7.8262c0.92677 0 1.714-0.66806 1.8599-1.5747l0.07696-0.39447 1.4735-9.2765 0.0946-0.509c0.14431-0.90983 0.93318-1.5779 1.8599-1.5779h1.1705c7.5825 0 13.518-3.054 15.253-11.891 0.72474-3.6918 0.34954-6.7744-1.5681-8.9424-0.58043-0.65374-1.3004-1.1961-2.1421-1.6383z"
|
||||
fill="#179bd7" />
|
||||
<path
|
||||
d="m65.644 23.374c-0.30304-0.08748-0.61571-0.16702-0.93639-0.23859-0.32228-0.06999-0.65259-0.13202-0.99251-0.1861-1.1897-0.19087-2.4933-0.28154-3.8899-0.28154h-11.788c-0.29022 0-0.566 0.06522-0.81293 0.18292-0.54355 0.25927-0.94761 0.76986-1.0454 1.395l-2.5077 15.757-0.07215 0.45969c0.16515-1.0371 1.0582-1.8006 2.1181-1.8006h4.4126c8.6664 0 15.452-3.4914 17.435-13.592 0.05933-0.29904 0.10903-0.59012 0.15393-0.87484-0.50187-0.26404-1.0454-0.48991-1.6307-0.68237-0.14431-0.04772-0.29342-0.09385-0.44414-0.13838z"
|
||||
fill="#222d65" />
|
||||
<path
|
||||
d="m46.179 24.246c0.09781-0.62511 0.50187-1.1357 1.0454-1.3934 0.24853-0.11771 0.52271-0.18292 0.81293-0.18292h11.788c1.3966 0 2.7001 0.09066 3.8899 0.28154 0.33992 0.05408 0.67022 0.11612 0.99251 0.1861 0.32068 0.07158 0.63334 0.15111 0.93639 0.23859 0.15072 0.04454 0.29984 0.09067 0.44575 0.13679 0.58524 0.19246 1.1288 0.41992 1.6307 0.68237 0.59005-3.7332-0.0048-6.275-2.0395-8.5766-2.2432-2.5338-6.2918-3.6186-11.472-3.6186h-15.04c-1.0582 0-1.961 0.7635-2.1245 1.8022l-6.2645 39.392c-0.12346 0.7794 0.48262 1.4825 1.2747 1.4825h9.2853l2.3314-14.673z"
|
||||
fill="#253b80" />
|
||||
</g>
|
||||
<g transform="matrix(1.004 0 0 .996 4.7854 0)" fill="#009cde" stroke="#003087" stroke-width="1px"
|
||||
aria-label="30">
|
||||
<path
|
||||
d="m189.71 34.756q3.5234 0.91003 5.3435 3.1734 1.8434 2.2401 1.8434 5.7168 0 5.1802-3.9668 7.8869-3.9668 2.6834-11.574 2.6834-2.6834 0-5.3902-0.44335-2.6834-0.42001-5.3202-1.2834v-6.9302q2.5201 1.26 4.9935 1.9134 2.4967 0.63002 4.9002 0.63002 3.5701 0 5.4602-1.2367 1.9134-1.2367 1.9134-3.5468 0-2.3801-1.9601-3.5934-1.9367-1.2367-5.7402-1.2367h-3.5934v-5.7868h3.7801q3.3834 0 5.0402-1.05 1.6567-1.0734 1.6567-3.2434 0-2.0067-1.61-3.1034t-4.5501-1.0967q-2.1701 0-4.3868 0.49002t-4.4101 1.4467v-6.5802q2.6601-0.74669 5.2735-1.12 2.6134-0.37334 5.1335-0.37334 6.7902 0 10.15 2.2401 3.3834 2.2167 3.3834 6.6969 0 3.0568-1.61 5.0168-1.61 1.9367-4.7601 2.7301z" />
|
||||
<path
|
||||
d="m225.67 36.086q0-6.5335-1.2367-9.1936-1.2134-2.6834-4.1068-2.6834t-4.1301 2.6834q-1.2367 2.6601-1.2367 9.1936 0 6.6035 1.2367 9.3103 1.2367 2.7067 4.1301 2.7067 2.8701 0 4.1068-2.7067t1.2367-9.3103zm8.9836 0.07q0 8.6569-3.7334 13.37-3.7334 4.6901-10.594 4.6901-6.8835 0-10.617-4.6901-3.7334-4.7135-3.7334-13.37 0-8.6803 3.7334-13.37 3.7334-4.7135 10.617-4.7135 6.8602 0 10.594 4.7135 3.7334 4.6901 3.7334 13.37z" />
|
||||
</g>
|
||||
<g transform="matrix(1.004 0 0 .996 4.7854 0)" fill="#003087" aria-label="€">
|
||||
<path
|
||||
d="m153.83 51.627q-2.2167 1.2834-4.6435 1.9367-2.4034 0.65335-5.0168 0.65335-6.1135 0-10.314-3.0334-4.1768-3.0568-5.9268-8.7736h-5.0635l2.0534-4.5501h2.2867q-0.0233-0.32668-0.0467-0.67669 0-0.37334 0-1.0267 0-0.67669 0-1.05 0.0233-0.37334 0.0467-0.72336h-4.3401l2.0534-4.5501h3.0101q1.7967-5.7402 5.9502-8.7503 4.1768-3.0101 10.29-3.0101 2.6134 0 5.0168 0.65335 2.4267 0.65335 4.6435 1.9367v7.2102q-1.8901-1.8201-4.0368-2.7301-2.1467-0.93336-4.4568-0.93336-2.9634 0-5.0635 1.4467-2.0767 1.4234-3.1268 4.1768h12.577l-2.0067 4.5501h-11.504q-0.0467 0.37334-0.07 0.79336 0 0.42001 0 1.26 0 0.30334 0 0.67669 0.0233 0.35001 0.0467 0.74669h10.01l-2.0767 4.5501h-6.9769q1.1667 2.8468 3.1968 4.2701 2.0534 1.4234 4.9935 1.4234 2.3101 0 4.4101-0.91003 2.1234-0.93336 4.0835-2.7768z"
|
||||
fill="#003087" stroke-width="1px" />
|
||||
</g>
|
||||
</svg>
|
||||
</a>
|
||||
<a id="ppanother" href="https://www.paypal.me/NilsMaier" title="Donate another amount" target="_blank">
|
||||
<svg viewBox="0 0 300 72" width="110">
|
||||
<rect x="1.5" y="1.5" width="297" height="69" ry="34.093" fill="#ffc439" fill-rule="evenodd" stroke="#dadce0"
|
||||
stroke-dashoffset="89.999" stroke-linejoin="round" stroke-width="3" style="paint-order:normal" />
|
||||
<g transform="translate(19.23)">
|
||||
<path
|
||||
d="m42.414 58.373 0.83858-5.284-1.868-0.04295h-8.9197l6.1988-38.991c0.01924-0.1177 0.08177-0.22746 0.17317-0.3054 0.09139-0.07794 0.20844-0.12089 0.3303-0.12089h15.04c4.993 0 8.4387 1.0307 10.238 3.0651 0.84339 0.95437 1.3805 1.9517 1.6403 3.0492 0.27258 1.1516 0.27739 2.5275 0.01122 4.2056l-0.01924 0.12248v1.0753l0.84339 0.474c0.71031 0.37379 1.2747 0.80167 1.7076 1.2916 0.72153 0.81599 1.1881 1.8531 1.3853 3.0826 0.20363 1.2645 0.13629 2.7693-0.19722 4.4728-0.38482 1.9596-1.0069 3.6664-1.8471 5.0629-0.77284 1.2868-1.7573 2.3541-2.9262 3.1812-1.116 0.78576-2.442 1.3822-3.9412 1.764-1.4527 0.37538-3.109 0.56467-4.9257 0.56467h-1.1705c-0.83698 0-1.6499 0.29904-2.2881 0.83507-0.63976 0.54717-1.0631 1.2948-1.1929 2.1123l-0.08819 0.47559-1.4815 9.3131-0.06734 0.34198c-0.01764 0.10816-0.0481 0.16224-0.093 0.19883-0.04008 0.0334-0.09781 0.05567-0.15393 0.05567z"
|
||||
fill="#253b80" />
|
||||
<path
|
||||
d="m67.719 24.195c-0.0449 0.28472-0.0962 0.5758-0.15393 0.87484-1.9834 10.102-8.769 13.592-17.435 13.592h-4.4126c-1.0598 0-1.9529 0.7635-2.1181 1.8006l-2.2592 14.214-0.63976 4.029c-0.10743 0.68078 0.4217 1.2948 1.1144 1.2948h7.8262c0.92677 0 1.714-0.66806 1.8599-1.5747l0.07696-0.39447 1.4735-9.2765 0.0946-0.509c0.14431-0.90983 0.93318-1.5779 1.8599-1.5779h1.1705c7.5825 0 13.518-3.054 15.253-11.891 0.72474-3.6918 0.34954-6.7744-1.5681-8.9424-0.58043-0.65374-1.3004-1.1961-2.1421-1.6383z"
|
||||
fill="#179bd7" />
|
||||
<path
|
||||
d="m65.644 23.374c-0.30304-0.08748-0.61571-0.16702-0.93639-0.23859-0.32228-0.06999-0.65259-0.13202-0.99251-0.1861-1.1897-0.19087-2.4933-0.28154-3.8899-0.28154h-11.788c-0.29022 0-0.566 0.06522-0.81293 0.18292-0.54355 0.25927-0.94761 0.76986-1.0454 1.395l-2.5077 15.757-0.07215 0.45969c0.16515-1.0371 1.0582-1.8006 2.1181-1.8006h4.4126c8.6664 0 15.452-3.4914 17.435-13.592 0.05933-0.29904 0.10903-0.59012 0.15393-0.87484-0.50187-0.26404-1.0454-0.48991-1.6307-0.68237-0.14431-0.04772-0.29342-0.09385-0.44414-0.13838z"
|
||||
fill="#222d65" />
|
||||
<path
|
||||
d="m46.179 24.246c0.09781-0.62511 0.50187-1.1357 1.0454-1.3934 0.24853-0.11771 0.52271-0.18292 0.81293-0.18292h11.788c1.3966 0 2.7001 0.09066 3.8899 0.28154 0.33992 0.05408 0.67022 0.11612 0.99251 0.1861 0.32068 0.07158 0.63334 0.15111 0.93639 0.23859 0.15072 0.04454 0.29984 0.09067 0.44575 0.13679 0.58524 0.19246 1.1288 0.41992 1.6307 0.68237 0.59005-3.7332-0.0048-6.275-2.0395-8.5766-2.2432-2.5338-6.2918-3.6186-11.472-3.6186h-15.04c-1.0582 0-1.961 0.7635-2.1245 1.8022l-6.2645 39.392c-0.12346 0.7794 0.48262 1.4825 1.2747 1.4825h9.2853l2.3314-14.673z"
|
||||
fill="#253b80" />
|
||||
</g>
|
||||
<g transform="translate(0 -.24886)" stroke-width="1.7342px">
|
||||
<g transform="matrix(.57894 0 0 .57432 95.638 27.862)" fill="#009cde" stroke="#003087" aria-label="Amount">
|
||||
<path
|
||||
d="m62.511 47.193h-14.047l-2.2167 6.3469h-9.0303l12.904-34.838h10.71l12.904 34.838h-9.0303zm-11.807-6.4635h9.5436l-4.7601-13.86z" />
|
||||
<path
|
||||
d="m105.19 31.746q1.5867-2.4267 3.7568-3.6868 2.1934-1.2834 4.8068-1.2834 4.5035 0 6.8602 2.7768t2.3567 8.0736v15.914h-8.4002v-13.627q0.0233-0.30334 0.0233-0.63002 0.0233-0.32668 0.0233-0.93336 0-2.7768-0.8167-4.0135-0.81669-1.26-2.6367-1.26-2.3801 0-3.6868 1.9601-1.2834 1.9601-1.33 5.6702v12.834h-8.4002v-13.627q0-4.3401-0.74669-5.5768-0.74669-1.26-2.6601-1.26-2.4034 0-3.7101 1.9834-1.3067 1.9601-1.3067 5.6235v12.857h-8.4003v-26.134h8.4003v3.8268q1.54-2.2167 3.5234-3.3368 2.0067-1.12 4.4101-1.12 2.7067 0 4.7835 1.3067 2.0767 1.3067 3.1501 3.6634z" />
|
||||
<path
|
||||
d="m146.26 32.749q-2.7768 0-4.2468 2.0067-1.4467 1.9834-1.4467 5.7402t1.4467 5.7635q1.47 1.9834 4.2468 1.9834 2.7301 0 4.1768-1.9834 1.4467-2.0067 1.4467-5.7635t-1.4467-5.7402q-1.4467-2.0067-4.1768-2.0067zm0-5.9735q6.7435 0 10.524 3.6401 3.8034 3.6401 3.8034 10.08 0 6.4402-3.8034 10.08-3.7801 3.6401-10.524 3.6401-6.7669 0-10.594-3.6401-3.8034-3.6401-3.8034-10.08 0-6.4402 3.8034-10.08 3.8268-3.6401 10.594-3.6401z" />
|
||||
<path
|
||||
d="m169.41 43.366v-15.96h8.4002v2.6134q0 2.1234-0.0233 5.3435-0.0233 3.1968-0.0233 4.2701 0 3.1501 0.16334 4.5501 0.16334 1.3767 0.56002 2.0067 0.51335 0.81669 1.33 1.26 0.84002 0.44335 1.9134 0.44335 2.6134 0 4.1068-2.0067t1.4934-5.5768v-12.904h8.3536v26.134h-8.3536v-3.7801q-1.8901 2.2867-4.0134 3.3834-2.1001 1.0734-4.6435 1.0734-4.5268 0-6.9069-2.7768-2.3567-2.7768-2.3567-8.0736z" />
|
||||
<path
|
||||
d="m233.04 37.626v15.914h-8.4003v-12.18q0-3.3834-0.16333-4.6668-0.14001-1.2834-0.51335-1.8901-0.49002-0.81669-1.33-1.26-0.84003-0.46668-1.9134-0.46668-2.6134 0-4.1068 2.0301-1.4934 2.0067-1.4934 5.5768v12.857h-8.3536v-26.134h8.3536v3.8268q1.8901-2.2867 4.0135-3.3601 2.1234-1.0967 4.6901-1.0967 4.5268 0 6.8602 2.7768 2.3567 2.7768 2.3567 8.0736z" />
|
||||
<path
|
||||
d="m252.97 19.986v7.4202h8.6103v5.9735h-8.6103v11.084q0 1.8201 0.72335 2.4734 0.72336 0.63002 2.8701 0.63002h4.2935v5.9735h-7.1636q-4.9468 0-7.0236-2.0534-2.0534-2.0767-2.0534-7.0235v-11.084h-4.1535v-5.9735h4.1535v-7.4202z" />
|
||||
</g>
|
||||
<g transform="matrix(.57894 0 0 .57432 95.638 23.862)" fill="#003087" aria-label="Another">
|
||||
<path
|
||||
d="m57.459 11.049h-14.047l-2.2167 6.3469h-9.0303l12.904-34.838h10.71l12.904 34.838h-9.0303zm-11.807-6.4635h9.5436l-4.7601-13.86z" />
|
||||
<path
|
||||
d="m102.19 1.4817v15.914h-8.4003v-12.18q0-3.3834-0.16334-4.6668-0.14-1.2834-0.51335-1.8901-0.49002-0.81669-1.33-1.26-0.84002-0.46668-1.9134-0.46668-2.6134 0-4.1068 2.0301-1.4934 2.0067-1.4934 5.5768v12.857h-8.3536v-26.134h8.3536v3.8268q1.8901-2.2867 4.0135-3.3601 2.1234-1.0967 4.6901-1.0967 4.5268 0 6.8602 2.7768 2.3567 2.7768 2.3567 8.0736z" />
|
||||
<path
|
||||
d="m125.43-3.3951q-2.7768 0-4.2468 2.0067-1.4467 1.9834-1.4467 5.7402t1.4467 5.7635q1.47 1.9834 4.2468 1.9834 2.7301 0 4.1768-1.9834 1.4467-2.0067 1.4467-5.7635t-1.4467-5.7402q-1.4467-2.0067-4.1768-2.0067zm0-5.9735q6.7435 0 10.524 3.6401 3.8034 3.6401 3.8034 10.08 0 6.4402-3.8034 10.08-3.7801 3.6401-10.524 3.6401-6.7669 0-10.594-3.6401-3.8034-3.6401-3.8034-10.08 0-6.4402 3.8034-10.08 3.8268-3.6401 10.594-3.6401z" />
|
||||
<path
|
||||
d="m157.99-16.159v7.4202h8.6103v5.9735h-8.6103v11.084q0 1.8201 0.72336 2.4734 0.72336 0.63002 2.8701 0.63002h4.2935v5.9735h-7.1636q-4.9468 0-7.0236-2.0534-2.0534-2.0767-2.0534-7.0235v-11.084h-4.1535v-5.9735h4.1535v-7.4202z" />
|
||||
<path
|
||||
d="m201.02 1.4817v15.914h-8.4002v-12.134q0-3.4301-0.16334-4.7135-0.14001-1.2834-0.51335-1.8901-0.49002-0.81669-1.33-1.26-0.84003-0.46668-1.9134-0.46668-2.6134 0-4.1068 2.0301-1.4934 2.0067-1.4934 5.5768v12.857h-8.3536v-36.308h8.3536v14q1.89-2.2867 4.0134-3.3601 2.1234-1.0967 4.6901-1.0967 4.5268 0 6.8602 2.7768 2.3567 2.7768 2.3567 8.0736z" />
|
||||
<path
|
||||
d="m237.91 4.2585v2.3801h-19.531q0.30334 2.9401 2.1234 4.4101 1.8201 1.47 5.0868 1.47 2.6367 0 5.3902-0.77002 2.7768-0.79336 5.6935-2.3801v6.4402q-2.9634 1.12-5.9268 1.6801-2.9634 0.58335-5.9268 0.58335-7.0936 0-11.037-3.5934-3.9201-3.6168-3.9201-10.127 0-6.3935 3.8501-10.057 3.8734-3.6634 10.64-3.6634 6.1602 0 9.847 3.7101 3.7101 3.7101 3.7101 9.917zm-8.5869-2.7768q0-2.3801-1.4-3.8268-1.3767-1.47-3.6168-1.47-2.4267 0-3.9434 1.3767-1.5167 1.3534-1.8901 3.9201z" />
|
||||
<path
|
||||
d="m266.64-1.6217q-1.0967-0.51335-2.1934-0.74669-1.0734-0.25667-2.1701-0.25667-3.2201 0-4.9702 2.0767-1.7267 2.0534-1.7267 5.9035v12.04h-8.3536v-26.134h8.3536v4.2935q1.61-2.5667 3.6868-3.7334 2.1001-1.19 5.0168-1.19 0.42001 0 0.91002 0.046668 0.49002 0.023334 1.4234 0.14z" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
</a>
|
||||
</section>
|
||||
<p>It requires <strong>a lot of time and some money</strong> to create the extension, keep up with browser
|
||||
changes, read and answer emails, bug reports and feature requests, and actually publish the final versions.
|
||||
<em>Any contribution is appreciated. Thank you!</em></p>
|
||||
|
||||
<h2>Major version changes</h2>
|
||||
<h3>Version 4.2 <em>October 9, 2019</em></h3>
|
||||
<ul>
|
||||
<li>Vastly improved name handling in Chrome. (<a
|
||||
href="https://bugzilla.mozilla.org/show_bug.cgi?id=1245652">Missing in Firefox</a>)</li>
|
||||
<li>Support <code>[a:z]</code> character batches</li>
|
||||
<li>Dark theme support</li>
|
||||
<li>Improved the gathering of images in websites</li>
|
||||
<li>The windows, in particular the Manager window, will now usually remember the size and position correctly.</li>
|
||||
</ul>
|
||||
|
||||
<h3>Version 4.1 <em>September 21, 2019</em></h3>
|
||||
<ul>
|
||||
<li>Subfolder dropdown. While it was previously possible to use masks for subfolders already, based on user
|
||||
feedback having a dedicated subfolder selection dropdown is more convenient and easier to discover.</li>
|
||||
<li>You can configure the browser button to more different actions now</li>
|
||||
<li>Play sounds: When the queue finishes, play a sound (can be enabled/disabled in the preferences)</li>
|
||||
<li>Delete files from within the manager</li>
|
||||
<li>Manager can now configured to be opened in a popup window instead of a tab</li>
|
||||
<li>Automatic retries (This feature relies on Firefox reporting errors correctly to extensions, which it
|
||||
only started doing in Firefox 71, which is currently available as Nightly).</li>
|
||||
</ul>
|
||||
|
||||
<h3>Version 4.0 <em>August 31, 2019</em></h3>
|
||||
<p>DownThemAll! reborn, as a WebExtension</p>
|
||||
</article>
|
||||
|
||||
<footer>
|
||||
<svg id="logo" viewBox="0 0 16 16">
|
||||
<defs>
|
||||
<linearGradient id="b">
|
||||
<stop stop-color="#116597" offset="0" />
|
||||
<stop stop-color="#062638" offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient id="a">
|
||||
<stop stop-color="#fffe99" offset="0" />
|
||||
<stop stop-color="#e49218" offset=".2" />
|
||||
<stop stop-color="#116597" offset="1" />
|
||||
</linearGradient>
|
||||
<radialGradient id="c" xlink:href="#a" gradientUnits="userSpaceOnUse" cy="17.413" cx="11.75"
|
||||
gradientTransform="matrix(.41233 0 0 1.1548 3.24 -8.74)" r="10.752" />
|
||||
<linearGradient id="h" y2="-.242" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="7.763"
|
||||
gradientTransform="translate(2.495 -6.342) scale(.6787)" y1="4.218" x1="8.101" />
|
||||
<linearGradient id="i" y2="-.242" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="7.763"
|
||||
gradientTransform="translate(2.495 -1.882) scale(.6787)" y1="4.218" x1="8.101" />
|
||||
<linearGradient id="g" y2="-.242" xlink:href="#b" gradientUnits="userSpaceOnUse" x2="7.763"
|
||||
gradientTransform="translate(7.08 4.18) scale(.43866)" y1="4.218" x1="8.101" />
|
||||
<linearGradient id="f" y2="-.242" xlink:href="#b" gradientUnits="userSpaceOnUse" x2="7.763"
|
||||
gradientTransform="translate(7.657 1.298) scale(.43866)" y1="4.218" x1="8.101" />
|
||||
<linearGradient id="e" y2="-.242" xlink:href="#b" gradientUnits="userSpaceOnUse" x2="7.763"
|
||||
gradientTransform="translate(1.851 4.18) scale(.43866)" y1="4.218" x1="8.101" />
|
||||
<linearGradient id="d" y2="-.242" xlink:href="#b" gradientUnits="userSpaceOnUse" x2="7.763"
|
||||
gradientTransform="translate(1.851 1.298) scale(.43866)" y1="4.218" x1="8.101" />
|
||||
</defs>
|
||||
<g stroke="#072739">
|
||||
<g stroke-width=".646">
|
||||
<path
|
||||
d="M4.561 7.134v1.515H1.996v.262l2.949 3.333 2.666 3.05h.99l2.686-3.05 2.848-3.252V8.65h-2.727V7.134H4.561z"
|
||||
fill="url(#c)" />
|
||||
<g stroke-linecap="round" stroke-dashoffset="10" fill-rule="evenodd">
|
||||
<path fill="url(#d)" d="M4.562 1.346h1.649v1.649H4.562z" />
|
||||
<path fill="url(#e)" d="M4.562 4.228h1.649v1.649H4.562z" />
|
||||
<path fill="url(#f)" d="M10.368 1.346h1.649v1.649h-1.649z" />
|
||||
<path fill="url(#g)" d="M9.792 4.228h1.649v1.649H9.792z" />
|
||||
</g>
|
||||
</g>
|
||||
<g fill-rule="evenodd" stroke-linecap="round" stroke-dashoffset="10">
|
||||
<path fill="url(#h)" d="M6.689-6.268H9.24v2.551H6.689z" transform="translate(2.874 4.614) scale(.64633)" />
|
||||
<path fill="url(#i)" d="M6.689-1.808H9.24V.743H6.689z" transform="translate(2.874 4.614) scale(.64633)" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<section>
|
||||
<p>Copyright © 2007-2018 Nils Maier, Stefano Verna, Federico Parodi</p>
|
||||
<p>Copyright © 2007-2019 Nils Maier</p>
|
||||
<p>The information on this website is licensed under the
|
||||
<a href="https://creativecommons.org/licenses/by-sa/4.0/">
|
||||
Creative Commons Attribution-ShareAlike 4.0 International License</a>.</p>
|
||||
</section>
|
||||
<a id="homepage" href="https://downthemall.org/">
|
||||
<svg viewBox="0 0 250 32" height="20" xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="matrix(1.1174 0 0 1.122 -217.76 -441.22)">
|
||||
<path
|
||||
d="m277.86 402.4c-2.106 0.594-3.9921 1.3387-5.0625 3.0371-1.8782 2.9802-1.8825 0.50072-5.0625 1.0117-0.075 4.312-1.6927 7.0814-1.0117 12.148 0.251 1.099-0.2614 1.8228 2.0234 2.0254 5.078-2.0169 2.6252-12.605 9.1113-13.162 0.661 5.076 1.325 12.532 3.0371 14.174h2.0254c2.0004 0 2.4284-0.24992 2.0254-4.0449-0.157-1.478-1.5594-2.1928-2.0234-4.0508-0.436-1.744-0.20767-2.7525-1.0137-5.0625 0.20397-2.5435-3.0757-5.9543-4.0488-6.0762z" />
|
||||
<path
|
||||
d="m205.98 396.32c0.71583-0.71583 3.037 0 3.037 0 3.312 2.743 2.107 7.979 3.037 12.148 0.97 4.354 2.863 8.229 3.037 12.149-3.865 0.827-3.919-2.155-5.062-4.05-3.517 0.195-3.843 3.58-7.086 4.05 0 0-3.0927 1.1003-6.074 0-2.2496-1.309-2.6451-6.2394-0.9158-9.8255 1.7293-3.5861 5.5833-5.828 10.027-5.3615 0 0-2.1472-6.9628 0-9.11zm-7.087 21.261c5.626-0.111 9.345-2.129 9.111-8.1-5.62-4-11.843 3.748-9.111 8.1z" />
|
||||
<path
|
||||
d="m262.67 400.37c3.124 1.378 4.2238 9.6188 3.037 14.174-0.21875 0.83965-3.6 4.9793-4.049 5.062-5.6104 1.0329-9.589-0.535-13.161-2.024-3.76 0.627-4.631 4.142-10.124 3.037-2.976-2.578-3.758-15.21 2.025-15.187 0.646 5.261-2.233 8.114 0 12.149 7.523 0.437 4.919-9.254 9.111-12.149 4.209 1.404 0.0379 4.9881 2.024 8.1 0.7405 1.1602 0.55971 3.037 2.025 3.037h5.062c2.561-0.813 3.5092-3.7334 4.049-6.074 1.0218-4.4307-3.744-7.344 1e-3 -10.125z" />
|
||||
<path
|
||||
d="m229.26 404.42c4.2274 1.6428 6.429 7.195 4.049 13.161-6.917 2.7019-16.888 6.2299-17.211-1.012-0.35916-8.0617 4.062-15.685 13.162-12.149zm-9.111 11.136c2.075 3.041 7.753 2.154 10.124 0 2.323-10.366-12.448-10.366-10.124 0z" />
|
||||
<path
|
||||
d="m415.54 393.28c1.635-0.285 1.742 0.957 3.037 1.012 0.117 7.88 0.244 15.768-6.074 17.211 0.518-6.569 1.518-12.656 3.037-18.223z" />
|
||||
<path
|
||||
d="m397.32 396.32c0.901 0.449 1.811 0.89 2.024 2.025 1.436 2.366 1.224 7.424 1.013 12.148-0.182 4.063 1.111 10.063-3.037 10.124-1.656-5.939-1.656-18.356 0-24.297z" />
|
||||
<path
|
||||
d="m405.42 396.32c0.901 0.449 1.811 0.89 2.024 2.025 1.436 2.366 1.225 7.424 1.013 12.148-0.182 4.063 1.112 10.063-3.037 10.124-1.656-5.939-1.656-18.356 0-24.297z" />
|
||||
<path
|
||||
d="m386.18 405.43c1.879 2.172 2.706 5.394 3.037 9.112 0.405 2.632 3.021 3.053 3.037 6.074-3.694 0.657-5.392-0.683-7.086-2.025-1.896 2.882-11.656 3.4133-12.148 0-1.2181-8.4422 3.734-13.813 13.16-13.161zm-10.123 11.136c5.229 3.119 8.32-1.521 8.123-7.087-3.941-4.338-8.175 1.277-8.123 7.087z" />
|
||||
<path d="m412.5 414.54c2.928 0.446 4.614 2.134 5.062 5.062-3.131 3.21-8.628-1.578-5.062-5.062z" />
|
||||
<g fill="#069">
|
||||
<path
|
||||
d="m344.67 399.36c-3.462 3.288-12.431 1.068-14.174 6.074-0.212 4.938 5.378 4.072 10.124 4.05-0.763 3.287-5.684 2.415-8.099 4.05 0.194 6.297 7.9627 1.1977 12.148 3.037 2.1858 0.96059-2.6665 2.6983-4.05 3.037-0.92 0.229-7.2519 3.9961-10.124 1.013-4.022-4.1774-6.0966-12.401-2.0268-19.74 2.1561-3.8884 7.9908-2.3919 12.151-3.5449 2.1724-1.0195 4.0825-0.57137 4.051 2.024z" />
|
||||
<path
|
||||
d="m368.97 398.35c0.91935 1.2579 1.638 4.258 2.024 7.086 0.632 4.615 1.344 11.963-3.037 12.149 0.605-6.006-1.776-9.022-1.012-15.187-2.943 2.12-2.8572 7.4034-6.074 9.112-5.4038 2.8702-7.236-2.214-10.124-4.05-0.162 4.899 0.612 10.735-4.05 11.136-0.788-6.862 1.383-10.766 1.013-17.21 6.881-1.144 5.642 5.832 10.124 7.086 2.854-2.881 4.6308-6.3006 7.086-10.123 0.7296-1.1359 3.2534-1.0889 4.05 1e-3z" />
|
||||
<path
|
||||
d="m299.12 404.42c2.5659-0.14763 2.6804 4.5418 3.037 7.087 0.319 2.835 0.61 6.509-1.012 8.099-3.139 1.088-1.619-3.049-2.025-5.062-0.701-3.477-2.194-6.897 0-10.124z" />
|
||||
<path
|
||||
d="m324 395.29c-4.1284 0.12154 0.92333 9.4224-3.6191 9.1289-3.094-0.731-3.6892 1.0347-6.0742 1.0117-5.024-0.414 3.2846-5.0625 3.2846-5.0625-1.3331-0.17112-4.8554 0.83219-4.9679-2.0635-1.1226-0.18087-1.4286 0.17857-3.0288 0.0563-0.30668 3.1413-2.5989 3.3131-5.6576 3.0448-6.3424-0.5564-15.93 1.6227-20.001 5.0366-0.88745 0.20112-1.9712 0.15704-2.4673-0.0332l0.44194 2.0606c8.225-2.236 14.819-5.3086 26.322-5.0625 0.802 5.947-2.2449 15.743 3.0371 17.211 4.327-0.057 0.29512-5.5363 2.0234-9.0879 1.899-3.9024 2.4597-3.319 5.0625-4.0723 5.9836-1.7317 0.3075 9.815 5.0625 10.123 3.109 0.858 1.9194-3.3815 2.0234-5.0625 0.3-4.805 0.0473-13.108-1.0117-17.211-0.15291-0.0158-0.29651-0.0215-0.42969-0.0176z" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</a>
|
||||
</footer>
|
||||
|
||||
</body>
|
||||
</html>
|
BIN
docs/changelog/res/ReenieBeanie-Regular.woff2
Normal file
BIN
docs/changelog/res/background-tile.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
docs/changelog/res/footerbg.png
Normal file
After Width: | Height: | Size: 10 KiB |
55
docs/changelog/res/halo.svg
Normal file
@ -0,0 +1,55 @@
|
||||
<svg version="1.1" viewBox="0 0 200 180" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<defs>
|
||||
<radialGradient id="d" cx="161.46" cy="-144.02" r="160.02" gradientTransform="matrix(1 0 0 .99838 0 -.23281)" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#febb00" offset="0"/>
|
||||
<stop stop-color="#ffd571" stop-opacity=".49804" offset=".64286"/>
|
||||
<stop stop-color="#ffe5a7" stop-opacity="0" offset=".95153"/>
|
||||
<stop stop-color="#ffe5a7" stop-opacity="0" offset="1"/>
|
||||
</radialGradient>
|
||||
<filter id="e" color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur stdDeviation="0.32807532"/>
|
||||
</filter>
|
||||
<radialGradient id="c" cx="161.46" cy="-144.02" r="160.02" gradientTransform="matrix(1 0 0 .99838 0 -.23281)" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#ffd14e" offset="0"/>
|
||||
<stop stop-color="#ffeeb5" stop-opacity=".49804" offset=".71429"/>
|
||||
<stop stop-color="#ffeeb5" stop-opacity=".49804" offset="1"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="b" cx="12.389" cy="11.882" r="8.199" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#e69412" offset="0"/>
|
||||
<stop stop-color="#f4c478" stop-opacity="0" offset="1"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="a" cx="11.75" cy="17.413" r="10.752" gradientTransform="matrix(3.3776 0 0 9.4595 121.98 -293.39)" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#fffe99" offset="0"/>
|
||||
<stop stop-color="#f69706" offset=".2"/>
|
||||
<stop stop-color="#136fa7" offset="1"/>
|
||||
</radialGradient>
|
||||
</defs>
|
||||
<g transform="translate(-61.457 224.02)">
|
||||
<g transform="matrix(.62494 0 0 .62494 60.557 -51.015)" fill="url(#d)" fill-rule="evenodd">
|
||||
<path d="m161.46-144.02 72.75 144.62-46.61 15.146z"/>
|
||||
<path d="m161.46-144.02 143.86 74.228-28.81 39.653z"/>
|
||||
<path d="m161.46-144.02 160.02-24.507v49.014z"/>
|
||||
<path d="m161.46-144.02 115.05-113.88 28.81 39.653z"/>
|
||||
<path d="m161.46-144.02 26.14-159.76 46.615 15.146z"/>
|
||||
<path d="m161.46-144.02-72.755-144.61 46.615-15.146z"/>
|
||||
<path d="m161.46-144.02-143.86-74.228 28.81-39.653z"/>
|
||||
<path d="m161.46-144.02-160.02 24.507-2.7e-6 -49.014z"/>
|
||||
<path d="m161.46-144.02-115.05 113.89-28.81-39.653z"/>
|
||||
<path d="m161.46-144.02-26.14 159.76-46.618-15.146z"/>
|
||||
</g>
|
||||
<g transform="matrix(.59435 -.19312 .19312 .59435 93.307 -24.24)" fill="url(#c)" fill-rule="evenodd" opacity=".88">
|
||||
<path d="m161.46-144.02 72.75 144.62-46.61 15.146z"/>
|
||||
<path d="m161.46-144.02 143.86 74.228-28.81 39.653z"/>
|
||||
<path d="m161.46-144.02 160.02-24.507v49.014z"/>
|
||||
<path d="m161.46-144.02 115.05-113.88 28.81 39.653z"/>
|
||||
<path d="m161.46-144.02 26.14-159.76 46.615 15.146z"/>
|
||||
<path d="m161.46-144.02-72.755-144.61 46.615-15.146z"/>
|
||||
<path d="m161.46-144.02-143.86-74.228 28.81-39.653z"/>
|
||||
<path d="m161.46-144.02-160.02 24.507-2.7e-6 -49.014z"/>
|
||||
<path d="m161.46-144.02-115.05 113.89-28.81-39.653z"/>
|
||||
<path d="m161.46-144.02-26.14 159.76-46.618-15.146z"/>
|
||||
</g>
|
||||
<path transform="matrix(7.0729 0 0 7.4575 73.647 -229.61)" d="m20.588 11.882a8.199 8.199 0 1 1-16.398 0 8.199 8.199 0 1 1 16.398 0z" fill="url(#b)" filter="url(#e)"/>
|
||||
<path d="m133.31-207.91v55.137h-17.218c-6.602-0.97334-3.1317 2.1508-3.1317 2.1508l23.494 26.472 18.653 21.422c1.9951 2.9976 3.1147 2.8985 6.486 2.8985 3.5137 0.43957 4.2275-0.28033 6.4176-2.757l19.07-21.564 22.666-25.81c3.6888-3.9672-2.8847-2.8126-2.8847-2.8126h-18.954v-54.904c0.65539-9.337-1.0536-9.0538-8.6714-8.7929h-37.608c-7.6308-0.26075-8.3181 0.1211-8.3181 8.5607z" fill="url(#a)" stroke="#0a3b56" stroke-width="5.1532"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.6 KiB |
BIN
docs/landing/batches.jpg
Executable file
After Width: | Height: | Size: 42 KiB |
BIN
docs/landing/batches.png
Executable file
After Width: | Height: | Size: 108 KiB |
BIN
docs/landing/batches.webm
Executable file
BIN
docs/landing/first.jpg
Executable file
After Width: | Height: | Size: 47 KiB |
BIN
docs/landing/first.png
Executable file
After Width: | Height: | Size: 105 KiB |
BIN
docs/landing/first.webm
Executable file
569
docs/landing/index.html
Executable file
@ -0,0 +1,569 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<!-- License: Creative Commons Attribution-ShareAlike 4.0 International License -->
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Welcome to DownThemAll!</title>
|
||||
<style crossorigin="anonymous">
|
||||
@font-face {
|
||||
font-family: "Reenie Beanie";
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: block;
|
||||
src: local("Reenie Beanie"), local("ReenieBeanie"),
|
||||
url(res/ReenieBeanie-Regular.woff2) format("woff2");
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
|
||||
U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
|
||||
U+FEFF, U+FFFD;
|
||||
}
|
||||
|
||||
:root {
|
||||
--content-width: 1000px;
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Ubuntu",
|
||||
"Helvetica Neue", sans-serif;
|
||||
font-size: 12pt;
|
||||
color: rgb(20, 20, 20);
|
||||
background: white;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
display: grid;
|
||||
background: white repeat-x url(res/background-tile.png);
|
||||
grid-template-columns: 1fr [content] auto 1fr;
|
||||
grid-template-rows: auto 1fr auto;
|
||||
grid-template-areas:
|
||||
". header ."
|
||||
". content ."
|
||||
"footer footer footer";
|
||||
}
|
||||
|
||||
a {
|
||||
color: rgb(30, 30, 70);
|
||||
}
|
||||
|
||||
li {
|
||||
list-style-type: circle;
|
||||
}
|
||||
|
||||
nav {
|
||||
max-width: var(--content-width);
|
||||
grid-area: header;
|
||||
display: flex;
|
||||
box-sizing: border-box;
|
||||
padding-right: 120px;
|
||||
padding-top: 1em;
|
||||
padding-left: 32px;
|
||||
align-content: center;
|
||||
align-items: baseline;
|
||||
background: no-repeat top right url(res/halo.svg);
|
||||
background-size: 120px;
|
||||
min-height: 100px;
|
||||
text-shadow: rgba(255, 255, 255, 0.8) 1px 3px 0px;
|
||||
font-family: "Reenie Beanie", cursive;
|
||||
}
|
||||
|
||||
nav h1,
|
||||
nav h2 {
|
||||
margin: 0;
|
||||
margin-right: 1ex;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
nav h1 {
|
||||
font-size: 400%;
|
||||
}
|
||||
|
||||
nav h2 {
|
||||
font-size: 250%;
|
||||
}
|
||||
|
||||
article {
|
||||
max-width: var(--content-width);
|
||||
grid-area: content;
|
||||
box-sizing: border-box;
|
||||
padding: 1ex 32px;
|
||||
background: white;
|
||||
border-bottom: 0;
|
||||
border-radius: 20px;
|
||||
border-bottom-left-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
|
||||
h3 em {
|
||||
display: inline-block;
|
||||
padding-left: 1em;
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
#paypal {
|
||||
margin: 1em;
|
||||
display: grid;
|
||||
grid-template-columns: auto auto auto auto auto;
|
||||
grid-row-gap: 1em;
|
||||
grid-column-gap: 1em;
|
||||
justify-content: center;
|
||||
justify-items: center;
|
||||
}
|
||||
|
||||
footer {
|
||||
display: grid;
|
||||
grid-template-columns: auto 1fr auto;
|
||||
grid-column-gap: 2em;
|
||||
padding: 2em 2em 1em 2em;
|
||||
background: transparent center top repeat-x url(res/footerbg.png);
|
||||
font-size: x-small;
|
||||
color: gray;
|
||||
grid-area: footer;
|
||||
}
|
||||
|
||||
footer p {
|
||||
margin: 0.3ex 0;
|
||||
}
|
||||
|
||||
#logo {
|
||||
width: 48px;
|
||||
align-self: center;
|
||||
opacity: 0.7;
|
||||
filter: grayscale(90%);
|
||||
}
|
||||
|
||||
figure {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: grid;
|
||||
width: 100%;
|
||||
justify-content: center;
|
||||
align-content: center;
|
||||
grid-template-columns: [content] 1fr;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
video {
|
||||
grid-area: content;
|
||||
margin: 0 auto;
|
||||
width: 720px;
|
||||
max-width: 90%;
|
||||
}
|
||||
|
||||
.play {
|
||||
grid-area: content;
|
||||
z-index: 100;
|
||||
min-height: 64px;
|
||||
min-width: 64px;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
background-size: 20%;
|
||||
background-image: url(res/go.svg);
|
||||
opacity: 0.4;
|
||||
transition: opacity 700ms;
|
||||
}
|
||||
|
||||
.play:hover {
|
||||
opacity: 0.95;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 750px) {
|
||||
nav {
|
||||
flex-direction: column;
|
||||
margin-bottom: 1em;
|
||||
padding-right: 120px;
|
||||
}
|
||||
|
||||
nav h1 {
|
||||
font-size: 275%;
|
||||
}
|
||||
|
||||
nav h2 {
|
||||
font-size: 220%;
|
||||
}
|
||||
|
||||
#paypal {
|
||||
grid-template-columns: auto auto;
|
||||
}
|
||||
|
||||
#homepage {
|
||||
display: none;
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<nav>
|
||||
<h2>Welcome to</h2>
|
||||
<h1>DownThemAll!</h1>
|
||||
</nav>
|
||||
<article>
|
||||
<h3>DownThemAll needs your support!</h3>
|
||||
<section id="paypal">
|
||||
<a href="https://www.paypal.me/NilsMaier/10" title="Donate €10" target="_blank">
|
||||
<svg viewBox="0 0 300 72" width=110>
|
||||
<rect x="1.5" y="1.5" width="297" height="69" ry="34.093" fill="#ffc439" fill-rule="evenodd" stroke="#dadce0"
|
||||
stroke-dashoffset="89.999" stroke-linejoin="round" stroke-width="3" style="paint-order:normal" />
|
||||
<g transform="translate(28.855)">
|
||||
<path
|
||||
d="m42.414 58.373 0.83858-5.284-1.868-0.04295h-8.9197l6.1988-38.991c0.01924-0.1177 0.08177-0.22746 0.17317-0.3054 0.09139-0.07794 0.20844-0.12089 0.3303-0.12089h15.04c4.993 0 8.4387 1.0307 10.238 3.0651 0.84339 0.95437 1.3805 1.9517 1.6403 3.0492 0.27258 1.1516 0.27739 2.5275 0.01122 4.2056l-0.01924 0.12248v1.0753l0.84339 0.474c0.71031 0.37379 1.2747 0.80167 1.7076 1.2916 0.72153 0.81599 1.1881 1.8531 1.3853 3.0826 0.20363 1.2645 0.13629 2.7693-0.19722 4.4728-0.38482 1.9596-1.0069 3.6664-1.8471 5.0629-0.77284 1.2868-1.7573 2.3541-2.9262 3.1812-1.116 0.78576-2.442 1.3822-3.9412 1.764-1.4527 0.37538-3.109 0.56467-4.9257 0.56467h-1.1705c-0.83698 0-1.6499 0.29904-2.2881 0.83507-0.63976 0.54717-1.0631 1.2948-1.1929 2.1123l-0.08819 0.47559-1.4815 9.3131-0.06734 0.34198c-0.01764 0.10816-0.0481 0.16224-0.093 0.19883-0.04008 0.0334-0.09781 0.05567-0.15393 0.05567z"
|
||||
fill="#253b80" />
|
||||
<path
|
||||
d="m67.719 24.195c-0.0449 0.28472-0.0962 0.5758-0.15393 0.87484-1.9834 10.102-8.769 13.592-17.435 13.592h-4.4126c-1.0598 0-1.9529 0.7635-2.1181 1.8006l-2.2592 14.214-0.63976 4.029c-0.10743 0.68078 0.4217 1.2948 1.1144 1.2948h7.8262c0.92677 0 1.714-0.66806 1.8599-1.5747l0.07696-0.39447 1.4735-9.2765 0.0946-0.509c0.14431-0.90983 0.93318-1.5779 1.8599-1.5779h1.1705c7.5825 0 13.518-3.054 15.253-11.891 0.72474-3.6918 0.34954-6.7744-1.5681-8.9424-0.58043-0.65374-1.3004-1.1961-2.1421-1.6383z"
|
||||
fill="#179bd7" />
|
||||
<path
|
||||
d="m65.644 23.374c-0.30304-0.08748-0.61571-0.16702-0.93639-0.23859-0.32228-0.06999-0.65259-0.13202-0.99251-0.1861-1.1897-0.19087-2.4933-0.28154-3.8899-0.28154h-11.788c-0.29022 0-0.566 0.06522-0.81293 0.18292-0.54355 0.25927-0.94761 0.76986-1.0454 1.395l-2.5077 15.757-0.07215 0.45969c0.16515-1.0371 1.0582-1.8006 2.1181-1.8006h4.4126c8.6664 0 15.452-3.4914 17.435-13.592 0.05933-0.29904 0.10903-0.59012 0.15393-0.87484-0.50187-0.26404-1.0454-0.48991-1.6307-0.68237-0.14431-0.04772-0.29342-0.09385-0.44414-0.13838z"
|
||||
fill="#222d65" />
|
||||
<path
|
||||
d="m46.179 24.246c0.09781-0.62511 0.50187-1.1357 1.0454-1.3934 0.24853-0.11771 0.52271-0.18292 0.81293-0.18292h11.788c1.3966 0 2.7001 0.09066 3.8899 0.28154 0.33992 0.05408 0.67022 0.11612 0.99251 0.1861 0.32068 0.07158 0.63334 0.15111 0.93639 0.23859 0.15072 0.04454 0.29984 0.09067 0.44575 0.13679 0.58524 0.19246 1.1288 0.41992 1.6307 0.68237 0.59005-3.7332-0.0048-6.275-2.0395-8.5766-2.2432-2.5338-6.2918-3.6186-11.472-3.6186h-15.04c-1.0582 0-1.961 0.7635-2.1245 1.8022l-6.2645 39.392c-0.12346 0.7794 0.48262 1.4825 1.2747 1.4825h9.2853l2.3314-14.673z"
|
||||
fill="#253b80" />
|
||||
</g>
|
||||
<g transform="matrix(1.004 0 0 .996 4.7854 0)" fill="#009cde" stroke="#003087" stroke-width="1px"
|
||||
aria-label="10">
|
||||
<path
|
||||
d="m173.05 47.333h7.9336v-22.517l-8.1436 1.6801v-6.1135l8.0969-1.6801h8.5403v28.631h7.9336v6.2069h-24.361z" />
|
||||
<path
|
||||
d="m225.67 36.086q0-6.5335-1.2367-9.1936-1.2134-2.6834-4.1068-2.6834t-4.1301 2.6834q-1.2367 2.6601-1.2367 9.1936 0 6.6035 1.2367 9.3103 1.2367 2.7067 4.1301 2.7067 2.8701 0 4.1068-2.7067t1.2367-9.3103zm8.9836 0.07q0 8.6569-3.7334 13.37-3.7334 4.6901-10.594 4.6901-6.8835 0-10.617-4.6901-3.7334-4.7135-3.7334-13.37 0-8.6803 3.7334-13.37 3.7334-4.7135 10.617-4.7135 6.8602 0 10.594 4.7135 3.7334 4.6901 3.7334 13.37z" />
|
||||
</g>
|
||||
<g transform="matrix(1.004 0 0 .996 4.7854 0)" fill="#003087" aria-label="€">
|
||||
<path
|
||||
d="m153.83 51.627q-2.2167 1.2834-4.6435 1.9367-2.4034 0.65335-5.0168 0.65335-6.1135 0-10.314-3.0334-4.1768-3.0568-5.9268-8.7736h-5.0635l2.0534-4.5501h2.2867q-0.0233-0.32668-0.0467-0.67669 0-0.37334 0-1.0267 0-0.67669 0-1.05 0.0233-0.37334 0.0467-0.72336h-4.3401l2.0534-4.5501h3.0101q1.7967-5.7402 5.9502-8.7503 4.1768-3.0101 10.29-3.0101 2.6134 0 5.0168 0.65335 2.4267 0.65335 4.6435 1.9367v7.2102q-1.8901-1.8201-4.0368-2.7301-2.1467-0.93336-4.4568-0.93336-2.9634 0-5.0635 1.4467-2.0767 1.4234-3.1268 4.1768h12.577l-2.0067 4.5501h-11.504q-0.0467 0.37334-0.07 0.79336 0 0.42001 0 1.26 0 0.30334 0 0.67669 0.0233 0.35001 0.0467 0.74669h10.01l-2.0767 4.5501h-6.9769q1.1667 2.8468 3.1968 4.2701 2.0534 1.4234 4.9935 1.4234 2.3101 0 4.4101-0.91003 2.1234-0.93336 4.0835-2.7768z"
|
||||
fill="#003087" stroke-width="1px" />
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
</a>
|
||||
<a href="https://www.paypal.me/NilsMaier/15" title="Donate €15" target="_blank">
|
||||
<svg viewBox="0 0 300 72" width="110">
|
||||
<rect x="1.5" y="1.5" width="297" height="69" ry="34.093" fill="#ffc439" fill-rule="evenodd" stroke="#dadce0"
|
||||
stroke-dashoffset="89.999" stroke-linejoin="round" stroke-width="3" style="paint-order:normal" />
|
||||
<g transform="translate(28.855)">
|
||||
<path
|
||||
d="m42.414 58.373 0.83858-5.284-1.868-0.04295h-8.9197l6.1988-38.991c0.01924-0.1177 0.08177-0.22746 0.17317-0.3054 0.09139-0.07794 0.20844-0.12089 0.3303-0.12089h15.04c4.993 0 8.4387 1.0307 10.238 3.0651 0.84339 0.95437 1.3805 1.9517 1.6403 3.0492 0.27258 1.1516 0.27739 2.5275 0.01122 4.2056l-0.01924 0.12248v1.0753l0.84339 0.474c0.71031 0.37379 1.2747 0.80167 1.7076 1.2916 0.72153 0.81599 1.1881 1.8531 1.3853 3.0826 0.20363 1.2645 0.13629 2.7693-0.19722 4.4728-0.38482 1.9596-1.0069 3.6664-1.8471 5.0629-0.77284 1.2868-1.7573 2.3541-2.9262 3.1812-1.116 0.78576-2.442 1.3822-3.9412 1.764-1.4527 0.37538-3.109 0.56467-4.9257 0.56467h-1.1705c-0.83698 0-1.6499 0.29904-2.2881 0.83507-0.63976 0.54717-1.0631 1.2948-1.1929 2.1123l-0.08819 0.47559-1.4815 9.3131-0.06734 0.34198c-0.01764 0.10816-0.0481 0.16224-0.093 0.19883-0.04008 0.0334-0.09781 0.05567-0.15393 0.05567z"
|
||||
fill="#253b80" />
|
||||
<path
|
||||
d="m67.719 24.195c-0.0449 0.28472-0.0962 0.5758-0.15393 0.87484-1.9834 10.102-8.769 13.592-17.435 13.592h-4.4126c-1.0598 0-1.9529 0.7635-2.1181 1.8006l-2.2592 14.214-0.63976 4.029c-0.10743 0.68078 0.4217 1.2948 1.1144 1.2948h7.8262c0.92677 0 1.714-0.66806 1.8599-1.5747l0.07696-0.39447 1.4735-9.2765 0.0946-0.509c0.14431-0.90983 0.93318-1.5779 1.8599-1.5779h1.1705c7.5825 0 13.518-3.054 15.253-11.891 0.72474-3.6918 0.34954-6.7744-1.5681-8.9424-0.58043-0.65374-1.3004-1.1961-2.1421-1.6383z"
|
||||
fill="#179bd7" />
|
||||
<path
|
||||
d="m65.644 23.374c-0.30304-0.08748-0.61571-0.16702-0.93639-0.23859-0.32228-0.06999-0.65259-0.13202-0.99251-0.1861-1.1897-0.19087-2.4933-0.28154-3.8899-0.28154h-11.788c-0.29022 0-0.566 0.06522-0.81293 0.18292-0.54355 0.25927-0.94761 0.76986-1.0454 1.395l-2.5077 15.757-0.07215 0.45969c0.16515-1.0371 1.0582-1.8006 2.1181-1.8006h4.4126c8.6664 0 15.452-3.4914 17.435-13.592 0.05933-0.29904 0.10903-0.59012 0.15393-0.87484-0.50187-0.26404-1.0454-0.48991-1.6307-0.68237-0.14431-0.04772-0.29342-0.09385-0.44414-0.13838z"
|
||||
fill="#222d65" />
|
||||
<path
|
||||
d="m46.179 24.246c0.09781-0.62511 0.50187-1.1357 1.0454-1.3934 0.24853-0.11771 0.52271-0.18292 0.81293-0.18292h11.788c1.3966 0 2.7001 0.09066 3.8899 0.28154 0.33992 0.05408 0.67022 0.11612 0.99251 0.1861 0.32068 0.07158 0.63334 0.15111 0.93639 0.23859 0.15072 0.04454 0.29984 0.09067 0.44575 0.13679 0.58524 0.19246 1.1288 0.41992 1.6307 0.68237 0.59005-3.7332-0.0048-6.275-2.0395-8.5766-2.2432-2.5338-6.2918-3.6186-11.472-3.6186h-15.04c-1.0582 0-1.961 0.7635-2.1245 1.8022l-6.2645 39.392c-0.12346 0.7794 0.48262 1.4825 1.2747 1.4825h9.2853l2.3314-14.673z"
|
||||
fill="#253b80" />
|
||||
</g>
|
||||
<g transform="matrix(1.004 0 0 .996 4.7854 0)" fill="#009cde" opacity=".75" stroke="#003087"
|
||||
stroke-width="1px" aria-label="15">
|
||||
<path
|
||||
d="m173.05 47.333h7.9336v-22.517l-8.1436 1.6801v-6.1135l8.0969-1.6801h8.5403v28.631h7.9336v6.2069h-24.361z" />
|
||||
<path
|
||||
d="m208.75 18.702h22.331v6.6035h-15.167v5.3902q1.0267-0.28001 2.0534-0.42001 1.05-0.16334 2.1701-0.16334 6.3702 0 9.917 3.1968 3.5468 3.1734 3.5468 8.8669 0 5.6468-3.8734 8.8436-3.8501 3.1968-10.71 3.1968-2.9634 0-5.8802-0.58335-2.8934-0.56002-5.7635-1.7267v-7.0702q2.8468 1.6334 5.3902 2.4501 2.5667 0.81669 4.8302 0.81669 3.2668 0 5.1335-1.5867 1.89-1.61 1.89-4.3401 0-2.7534-1.89-4.3401-1.8667-1.5867-5.1335-1.5867-1.9367 0-4.1301 0.51335-2.1934 0.49002-4.7135 1.54z" />
|
||||
</g>
|
||||
<g transform="matrix(1.004 0 0 .996 4.7854 0)" fill="#003087" aria-label="€">
|
||||
<path
|
||||
d="m153.83 51.627q-2.2167 1.2834-4.6435 1.9367-2.4034 0.65335-5.0168 0.65335-6.1135 0-10.314-3.0334-4.1768-3.0568-5.9268-8.7736h-5.0635l2.0534-4.5501h2.2867q-0.0233-0.32668-0.0467-0.67669 0-0.37334 0-1.0267 0-0.67669 0-1.05 0.0233-0.37334 0.0467-0.72336h-4.3401l2.0534-4.5501h3.0101q1.7967-5.7402 5.9502-8.7503 4.1768-3.0101 10.29-3.0101 2.6134 0 5.0168 0.65335 2.4267 0.65335 4.6435 1.9367v7.2102q-1.8901-1.8201-4.0368-2.7301-2.1467-0.93336-4.4568-0.93336-2.9634 0-5.0635 1.4467-2.0767 1.4234-3.1268 4.1768h12.577l-2.0067 4.5501h-11.504q-0.0467 0.37334-0.07 0.79336 0 0.42001 0 1.26 0 0.30334 0 0.67669 0.0233 0.35001 0.0467 0.74669h10.01l-2.0767 4.5501h-6.9769q1.1667 2.8468 3.1968 4.2701 2.0534 1.4234 4.9935 1.4234 2.3101 0 4.4101-0.91003 2.1234-0.93336 4.0835-2.7768z"
|
||||
fill="#003087" stroke-width="1px" />
|
||||
</g>
|
||||
</svg>
|
||||
</a>
|
||||
<a href="https://www.paypal.me/NilsMaier/20" title="Donate €20" target="_blank">
|
||||
<svg viewBox="0 0 300 72" width="110">
|
||||
<rect x="1.5" y="1.5" width="297" height="69" ry="34.093" fill="#ffc439" fill-rule="evenodd" stroke="#dadce0"
|
||||
stroke-dashoffset="89.999" stroke-linejoin="round" stroke-width="3" style="paint-order:normal" />
|
||||
<g transform="translate(28.855)">
|
||||
<path
|
||||
d="m42.414 58.373 0.83858-5.284-1.868-0.04295h-8.9197l6.1988-38.991c0.01924-0.1177 0.08177-0.22746 0.17317-0.3054 0.09139-0.07794 0.20844-0.12089 0.3303-0.12089h15.04c4.993 0 8.4387 1.0307 10.238 3.0651 0.84339 0.95437 1.3805 1.9517 1.6403 3.0492 0.27258 1.1516 0.27739 2.5275 0.01122 4.2056l-0.01924 0.12248v1.0753l0.84339 0.474c0.71031 0.37379 1.2747 0.80167 1.7076 1.2916 0.72153 0.81599 1.1881 1.8531 1.3853 3.0826 0.20363 1.2645 0.13629 2.7693-0.19722 4.4728-0.38482 1.9596-1.0069 3.6664-1.8471 5.0629-0.77284 1.2868-1.7573 2.3541-2.9262 3.1812-1.116 0.78576-2.442 1.3822-3.9412 1.764-1.4527 0.37538-3.109 0.56467-4.9257 0.56467h-1.1705c-0.83698 0-1.6499 0.29904-2.2881 0.83507-0.63976 0.54717-1.0631 1.2948-1.1929 2.1123l-0.08819 0.47559-1.4815 9.3131-0.06734 0.34198c-0.01764 0.10816-0.0481 0.16224-0.093 0.19883-0.04008 0.0334-0.09781 0.05567-0.15393 0.05567z"
|
||||
fill="#253b80" />
|
||||
<path
|
||||
d="m67.719 24.195c-0.0449 0.28472-0.0962 0.5758-0.15393 0.87484-1.9834 10.102-8.769 13.592-17.435 13.592h-4.4126c-1.0598 0-1.9529 0.7635-2.1181 1.8006l-2.2592 14.214-0.63976 4.029c-0.10743 0.68078 0.4217 1.2948 1.1144 1.2948h7.8262c0.92677 0 1.714-0.66806 1.8599-1.5747l0.07696-0.39447 1.4735-9.2765 0.0946-0.509c0.14431-0.90983 0.93318-1.5779 1.8599-1.5779h1.1705c7.5825 0 13.518-3.054 15.253-11.891 0.72474-3.6918 0.34954-6.7744-1.5681-8.9424-0.58043-0.65374-1.3004-1.1961-2.1421-1.6383z"
|
||||
fill="#179bd7" />
|
||||
<path
|
||||
d="m65.644 23.374c-0.30304-0.08748-0.61571-0.16702-0.93639-0.23859-0.32228-0.06999-0.65259-0.13202-0.99251-0.1861-1.1897-0.19087-2.4933-0.28154-3.8899-0.28154h-11.788c-0.29022 0-0.566 0.06522-0.81293 0.18292-0.54355 0.25927-0.94761 0.76986-1.0454 1.395l-2.5077 15.757-0.07215 0.45969c0.16515-1.0371 1.0582-1.8006 2.1181-1.8006h4.4126c8.6664 0 15.452-3.4914 17.435-13.592 0.05933-0.29904 0.10903-0.59012 0.15393-0.87484-0.50187-0.26404-1.0454-0.48991-1.6307-0.68237-0.14431-0.04772-0.29342-0.09385-0.44414-0.13838z"
|
||||
fill="#222d65" />
|
||||
<path
|
||||
d="m46.179 24.246c0.09781-0.62511 0.50187-1.1357 1.0454-1.3934 0.24853-0.11771 0.52271-0.18292 0.81293-0.18292h11.788c1.3966 0 2.7001 0.09066 3.8899 0.28154 0.33992 0.05408 0.67022 0.11612 0.99251 0.1861 0.32068 0.07158 0.63334 0.15111 0.93639 0.23859 0.15072 0.04454 0.29984 0.09067 0.44575 0.13679 0.58524 0.19246 1.1288 0.41992 1.6307 0.68237 0.59005-3.7332-0.0048-6.275-2.0395-8.5766-2.2432-2.5338-6.2918-3.6186-11.472-3.6186h-15.04c-1.0582 0-1.961 0.7635-2.1245 1.8022l-6.2645 39.392c-0.12346 0.7794 0.48262 1.4825 1.2747 1.4825h9.2853l2.3314-14.673z"
|
||||
fill="#253b80" />
|
||||
</g>
|
||||
<g transform="matrix(1.004 0 0 .996 4.7854 0)" fill="#009cde" stroke="#003087" stroke-width="1px"
|
||||
aria-label="20">
|
||||
<path
|
||||
d="m181.22 46.936h15.33v6.6035h-25.317v-6.6035l12.717-11.224q1.7034-1.54 2.5201-3.0101 0.81669-1.47 0.81669-3.0568 0-2.4501-1.6567-3.9435-1.6334-1.4934-4.3635-1.4934-2.1001 0-4.5968 0.91003-2.4968 0.88669-5.3435 2.6601v-7.6536q3.0334-1.0034 5.9968-1.5167 2.9634-0.53668 5.8102-0.53668 6.2535 0 9.707 2.7534 3.4768 2.7534 3.4768 7.6769 0 2.8468-1.47 5.3202-1.47 2.4501-6.1835 6.5802z" />
|
||||
<path
|
||||
d="m225.67 36.086q0-6.5335-1.2367-9.1936-1.2134-2.6834-4.1068-2.6834t-4.1301 2.6834q-1.2367 2.6601-1.2367 9.1936 0 6.6035 1.2367 9.3103 1.2367 2.7067 4.1301 2.7067 2.8701 0 4.1068-2.7067t1.2367-9.3103zm8.9836 0.07q0 8.6569-3.7334 13.37-3.7334 4.6901-10.594 4.6901-6.8835 0-10.617-4.6901-3.7334-4.7135-3.7334-13.37 0-8.6803 3.7334-13.37 3.7334-4.7135 10.617-4.7135 6.8602 0 10.594 4.7135 3.7334 4.6901 3.7334 13.37z" />
|
||||
</g>
|
||||
<g transform="matrix(1.004 0 0 .996 4.7854 0)" fill="#003087" aria-label="€">
|
||||
<path
|
||||
d="m153.83 51.627q-2.2167 1.2834-4.6435 1.9367-2.4034 0.65335-5.0168 0.65335-6.1135 0-10.314-3.0334-4.1768-3.0568-5.9268-8.7736h-5.0635l2.0534-4.5501h2.2867q-0.0233-0.32668-0.0467-0.67669 0-0.37334 0-1.0267 0-0.67669 0-1.05 0.0233-0.37334 0.0467-0.72336h-4.3401l2.0534-4.5501h3.0101q1.7967-5.7402 5.9502-8.7503 4.1768-3.0101 10.29-3.0101 2.6134 0 5.0168 0.65335 2.4267 0.65335 4.6435 1.9367v7.2102q-1.8901-1.8201-4.0368-2.7301-2.1467-0.93336-4.4568-0.93336-2.9634 0-5.0635 1.4467-2.0767 1.4234-3.1268 4.1768h12.577l-2.0067 4.5501h-11.504q-0.0467 0.37334-0.07 0.79336 0 0.42001 0 1.26 0 0.30334 0 0.67669 0.0233 0.35001 0.0467 0.74669h10.01l-2.0767 4.5501h-6.9769q1.1667 2.8468 3.1968 4.2701 2.0534 1.4234 4.9935 1.4234 2.3101 0 4.4101-0.91003 2.1234-0.93336 4.0835-2.7768z"
|
||||
fill="#003087" stroke-width="1px" />
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
</a>
|
||||
<a href="https://www.paypal.me/NilsMaier/30" title="Donate €30" target="_blank">
|
||||
<svg viewBox="0 0 300 72" width="110">
|
||||
<rect x="1.5" y="1.5" width="297" height="69" ry="34.093" fill="#ffc439" fill-rule="evenodd" stroke="#dadce0"
|
||||
stroke-dashoffset="89.999" stroke-linejoin="round" stroke-width="3" style="paint-order:normal" />
|
||||
<g transform="translate(28.855)">
|
||||
<path
|
||||
d="m42.414 58.373 0.83858-5.284-1.868-0.04295h-8.9197l6.1988-38.991c0.01924-0.1177 0.08177-0.22746 0.17317-0.3054 0.09139-0.07794 0.20844-0.12089 0.3303-0.12089h15.04c4.993 0 8.4387 1.0307 10.238 3.0651 0.84339 0.95437 1.3805 1.9517 1.6403 3.0492 0.27258 1.1516 0.27739 2.5275 0.01122 4.2056l-0.01924 0.12248v1.0753l0.84339 0.474c0.71031 0.37379 1.2747 0.80167 1.7076 1.2916 0.72153 0.81599 1.1881 1.8531 1.3853 3.0826 0.20363 1.2645 0.13629 2.7693-0.19722 4.4728-0.38482 1.9596-1.0069 3.6664-1.8471 5.0629-0.77284 1.2868-1.7573 2.3541-2.9262 3.1812-1.116 0.78576-2.442 1.3822-3.9412 1.764-1.4527 0.37538-3.109 0.56467-4.9257 0.56467h-1.1705c-0.83698 0-1.6499 0.29904-2.2881 0.83507-0.63976 0.54717-1.0631 1.2948-1.1929 2.1123l-0.08819 0.47559-1.4815 9.3131-0.06734 0.34198c-0.01764 0.10816-0.0481 0.16224-0.093 0.19883-0.04008 0.0334-0.09781 0.05567-0.15393 0.05567z"
|
||||
fill="#253b80" />
|
||||
<path
|
||||
d="m67.719 24.195c-0.0449 0.28472-0.0962 0.5758-0.15393 0.87484-1.9834 10.102-8.769 13.592-17.435 13.592h-4.4126c-1.0598 0-1.9529 0.7635-2.1181 1.8006l-2.2592 14.214-0.63976 4.029c-0.10743 0.68078 0.4217 1.2948 1.1144 1.2948h7.8262c0.92677 0 1.714-0.66806 1.8599-1.5747l0.07696-0.39447 1.4735-9.2765 0.0946-0.509c0.14431-0.90983 0.93318-1.5779 1.8599-1.5779h1.1705c7.5825 0 13.518-3.054 15.253-11.891 0.72474-3.6918 0.34954-6.7744-1.5681-8.9424-0.58043-0.65374-1.3004-1.1961-2.1421-1.6383z"
|
||||
fill="#179bd7" />
|
||||
<path
|
||||
d="m65.644 23.374c-0.30304-0.08748-0.61571-0.16702-0.93639-0.23859-0.32228-0.06999-0.65259-0.13202-0.99251-0.1861-1.1897-0.19087-2.4933-0.28154-3.8899-0.28154h-11.788c-0.29022 0-0.566 0.06522-0.81293 0.18292-0.54355 0.25927-0.94761 0.76986-1.0454 1.395l-2.5077 15.757-0.07215 0.45969c0.16515-1.0371 1.0582-1.8006 2.1181-1.8006h4.4126c8.6664 0 15.452-3.4914 17.435-13.592 0.05933-0.29904 0.10903-0.59012 0.15393-0.87484-0.50187-0.26404-1.0454-0.48991-1.6307-0.68237-0.14431-0.04772-0.29342-0.09385-0.44414-0.13838z"
|
||||
fill="#222d65" />
|
||||
<path
|
||||
d="m46.179 24.246c0.09781-0.62511 0.50187-1.1357 1.0454-1.3934 0.24853-0.11771 0.52271-0.18292 0.81293-0.18292h11.788c1.3966 0 2.7001 0.09066 3.8899 0.28154 0.33992 0.05408 0.67022 0.11612 0.99251 0.1861 0.32068 0.07158 0.63334 0.15111 0.93639 0.23859 0.15072 0.04454 0.29984 0.09067 0.44575 0.13679 0.58524 0.19246 1.1288 0.41992 1.6307 0.68237 0.59005-3.7332-0.0048-6.275-2.0395-8.5766-2.2432-2.5338-6.2918-3.6186-11.472-3.6186h-15.04c-1.0582 0-1.961 0.7635-2.1245 1.8022l-6.2645 39.392c-0.12346 0.7794 0.48262 1.4825 1.2747 1.4825h9.2853l2.3314-14.673z"
|
||||
fill="#253b80" />
|
||||
</g>
|
||||
<g transform="matrix(1.004 0 0 .996 4.7854 0)" fill="#009cde" stroke="#003087" stroke-width="1px"
|
||||
aria-label="30">
|
||||
<path
|
||||
d="m189.71 34.756q3.5234 0.91003 5.3435 3.1734 1.8434 2.2401 1.8434 5.7168 0 5.1802-3.9668 7.8869-3.9668 2.6834-11.574 2.6834-2.6834 0-5.3902-0.44335-2.6834-0.42001-5.3202-1.2834v-6.9302q2.5201 1.26 4.9935 1.9134 2.4967 0.63002 4.9002 0.63002 3.5701 0 5.4602-1.2367 1.9134-1.2367 1.9134-3.5468 0-2.3801-1.9601-3.5934-1.9367-1.2367-5.7402-1.2367h-3.5934v-5.7868h3.7801q3.3834 0 5.0402-1.05 1.6567-1.0734 1.6567-3.2434 0-2.0067-1.61-3.1034t-4.5501-1.0967q-2.1701 0-4.3868 0.49002t-4.4101 1.4467v-6.5802q2.6601-0.74669 5.2735-1.12 2.6134-0.37334 5.1335-0.37334 6.7902 0 10.15 2.2401 3.3834 2.2167 3.3834 6.6969 0 3.0568-1.61 5.0168-1.61 1.9367-4.7601 2.7301z" />
|
||||
<path
|
||||
d="m225.67 36.086q0-6.5335-1.2367-9.1936-1.2134-2.6834-4.1068-2.6834t-4.1301 2.6834q-1.2367 2.6601-1.2367 9.1936 0 6.6035 1.2367 9.3103 1.2367 2.7067 4.1301 2.7067 2.8701 0 4.1068-2.7067t1.2367-9.3103zm8.9836 0.07q0 8.6569-3.7334 13.37-3.7334 4.6901-10.594 4.6901-6.8835 0-10.617-4.6901-3.7334-4.7135-3.7334-13.37 0-8.6803 3.7334-13.37 3.7334-4.7135 10.617-4.7135 6.8602 0 10.594 4.7135 3.7334 4.6901 3.7334 13.37z" />
|
||||
</g>
|
||||
<g transform="matrix(1.004 0 0 .996 4.7854 0)" fill="#003087" aria-label="€">
|
||||
<path
|
||||
d="m153.83 51.627q-2.2167 1.2834-4.6435 1.9367-2.4034 0.65335-5.0168 0.65335-6.1135 0-10.314-3.0334-4.1768-3.0568-5.9268-8.7736h-5.0635l2.0534-4.5501h2.2867q-0.0233-0.32668-0.0467-0.67669 0-0.37334 0-1.0267 0-0.67669 0-1.05 0.0233-0.37334 0.0467-0.72336h-4.3401l2.0534-4.5501h3.0101q1.7967-5.7402 5.9502-8.7503 4.1768-3.0101 10.29-3.0101 2.6134 0 5.0168 0.65335 2.4267 0.65335 4.6435 1.9367v7.2102q-1.8901-1.8201-4.0368-2.7301-2.1467-0.93336-4.4568-0.93336-2.9634 0-5.0635 1.4467-2.0767 1.4234-3.1268 4.1768h12.577l-2.0067 4.5501h-11.504q-0.0467 0.37334-0.07 0.79336 0 0.42001 0 1.26 0 0.30334 0 0.67669 0.0233 0.35001 0.0467 0.74669h10.01l-2.0767 4.5501h-6.9769q1.1667 2.8468 3.1968 4.2701 2.0534 1.4234 4.9935 1.4234 2.3101 0 4.4101-0.91003 2.1234-0.93336 4.0835-2.7768z"
|
||||
fill="#003087" stroke-width="1px" />
|
||||
</g>
|
||||
</svg>
|
||||
</a>
|
||||
<a id="ppanother" href="https://www.paypal.me/NilsMaier" title="Donate another amount" target="_blank">
|
||||
<svg viewBox="0 0 300 72" width="110">
|
||||
<rect x="1.5" y="1.5" width="297" height="69" ry="34.093" fill="#ffc439" fill-rule="evenodd" stroke="#dadce0"
|
||||
stroke-dashoffset="89.999" stroke-linejoin="round" stroke-width="3" style="paint-order:normal" />
|
||||
<g transform="translate(19.23)">
|
||||
<path
|
||||
d="m42.414 58.373 0.83858-5.284-1.868-0.04295h-8.9197l6.1988-38.991c0.01924-0.1177 0.08177-0.22746 0.17317-0.3054 0.09139-0.07794 0.20844-0.12089 0.3303-0.12089h15.04c4.993 0 8.4387 1.0307 10.238 3.0651 0.84339 0.95437 1.3805 1.9517 1.6403 3.0492 0.27258 1.1516 0.27739 2.5275 0.01122 4.2056l-0.01924 0.12248v1.0753l0.84339 0.474c0.71031 0.37379 1.2747 0.80167 1.7076 1.2916 0.72153 0.81599 1.1881 1.8531 1.3853 3.0826 0.20363 1.2645 0.13629 2.7693-0.19722 4.4728-0.38482 1.9596-1.0069 3.6664-1.8471 5.0629-0.77284 1.2868-1.7573 2.3541-2.9262 3.1812-1.116 0.78576-2.442 1.3822-3.9412 1.764-1.4527 0.37538-3.109 0.56467-4.9257 0.56467h-1.1705c-0.83698 0-1.6499 0.29904-2.2881 0.83507-0.63976 0.54717-1.0631 1.2948-1.1929 2.1123l-0.08819 0.47559-1.4815 9.3131-0.06734 0.34198c-0.01764 0.10816-0.0481 0.16224-0.093 0.19883-0.04008 0.0334-0.09781 0.05567-0.15393 0.05567z"
|
||||
fill="#253b80" />
|
||||
<path
|
||||
d="m67.719 24.195c-0.0449 0.28472-0.0962 0.5758-0.15393 0.87484-1.9834 10.102-8.769 13.592-17.435 13.592h-4.4126c-1.0598 0-1.9529 0.7635-2.1181 1.8006l-2.2592 14.214-0.63976 4.029c-0.10743 0.68078 0.4217 1.2948 1.1144 1.2948h7.8262c0.92677 0 1.714-0.66806 1.8599-1.5747l0.07696-0.39447 1.4735-9.2765 0.0946-0.509c0.14431-0.90983 0.93318-1.5779 1.8599-1.5779h1.1705c7.5825 0 13.518-3.054 15.253-11.891 0.72474-3.6918 0.34954-6.7744-1.5681-8.9424-0.58043-0.65374-1.3004-1.1961-2.1421-1.6383z"
|
||||
fill="#179bd7" />
|
||||
<path
|
||||
d="m65.644 23.374c-0.30304-0.08748-0.61571-0.16702-0.93639-0.23859-0.32228-0.06999-0.65259-0.13202-0.99251-0.1861-1.1897-0.19087-2.4933-0.28154-3.8899-0.28154h-11.788c-0.29022 0-0.566 0.06522-0.81293 0.18292-0.54355 0.25927-0.94761 0.76986-1.0454 1.395l-2.5077 15.757-0.07215 0.45969c0.16515-1.0371 1.0582-1.8006 2.1181-1.8006h4.4126c8.6664 0 15.452-3.4914 17.435-13.592 0.05933-0.29904 0.10903-0.59012 0.15393-0.87484-0.50187-0.26404-1.0454-0.48991-1.6307-0.68237-0.14431-0.04772-0.29342-0.09385-0.44414-0.13838z"
|
||||
fill="#222d65" />
|
||||
<path
|
||||
d="m46.179 24.246c0.09781-0.62511 0.50187-1.1357 1.0454-1.3934 0.24853-0.11771 0.52271-0.18292 0.81293-0.18292h11.788c1.3966 0 2.7001 0.09066 3.8899 0.28154 0.33992 0.05408 0.67022 0.11612 0.99251 0.1861 0.32068 0.07158 0.63334 0.15111 0.93639 0.23859 0.15072 0.04454 0.29984 0.09067 0.44575 0.13679 0.58524 0.19246 1.1288 0.41992 1.6307 0.68237 0.59005-3.7332-0.0048-6.275-2.0395-8.5766-2.2432-2.5338-6.2918-3.6186-11.472-3.6186h-15.04c-1.0582 0-1.961 0.7635-2.1245 1.8022l-6.2645 39.392c-0.12346 0.7794 0.48262 1.4825 1.2747 1.4825h9.2853l2.3314-14.673z"
|
||||
fill="#253b80" />
|
||||
</g>
|
||||
<g transform="translate(0 -.24886)" stroke-width="1.7342px">
|
||||
<g transform="matrix(.57894 0 0 .57432 95.638 27.862)" fill="#009cde" stroke="#003087" aria-label="Amount">
|
||||
<path
|
||||
d="m62.511 47.193h-14.047l-2.2167 6.3469h-9.0303l12.904-34.838h10.71l12.904 34.838h-9.0303zm-11.807-6.4635h9.5436l-4.7601-13.86z" />
|
||||
<path
|
||||
d="m105.19 31.746q1.5867-2.4267 3.7568-3.6868 2.1934-1.2834 4.8068-1.2834 4.5035 0 6.8602 2.7768t2.3567 8.0736v15.914h-8.4002v-13.627q0.0233-0.30334 0.0233-0.63002 0.0233-0.32668 0.0233-0.93336 0-2.7768-0.8167-4.0135-0.81669-1.26-2.6367-1.26-2.3801 0-3.6868 1.9601-1.2834 1.9601-1.33 5.6702v12.834h-8.4002v-13.627q0-4.3401-0.74669-5.5768-0.74669-1.26-2.6601-1.26-2.4034 0-3.7101 1.9834-1.3067 1.9601-1.3067 5.6235v12.857h-8.4003v-26.134h8.4003v3.8268q1.54-2.2167 3.5234-3.3368 2.0067-1.12 4.4101-1.12 2.7067 0 4.7835 1.3067 2.0767 1.3067 3.1501 3.6634z" />
|
||||
<path
|
||||
d="m146.26 32.749q-2.7768 0-4.2468 2.0067-1.4467 1.9834-1.4467 5.7402t1.4467 5.7635q1.47 1.9834 4.2468 1.9834 2.7301 0 4.1768-1.9834 1.4467-2.0067 1.4467-5.7635t-1.4467-5.7402q-1.4467-2.0067-4.1768-2.0067zm0-5.9735q6.7435 0 10.524 3.6401 3.8034 3.6401 3.8034 10.08 0 6.4402-3.8034 10.08-3.7801 3.6401-10.524 3.6401-6.7669 0-10.594-3.6401-3.8034-3.6401-3.8034-10.08 0-6.4402 3.8034-10.08 3.8268-3.6401 10.594-3.6401z" />
|
||||
<path
|
||||
d="m169.41 43.366v-15.96h8.4002v2.6134q0 2.1234-0.0233 5.3435-0.0233 3.1968-0.0233 4.2701 0 3.1501 0.16334 4.5501 0.16334 1.3767 0.56002 2.0067 0.51335 0.81669 1.33 1.26 0.84002 0.44335 1.9134 0.44335 2.6134 0 4.1068-2.0067t1.4934-5.5768v-12.904h8.3536v26.134h-8.3536v-3.7801q-1.8901 2.2867-4.0134 3.3834-2.1001 1.0734-4.6435 1.0734-4.5268 0-6.9069-2.7768-2.3567-2.7768-2.3567-8.0736z" />
|
||||
<path
|
||||
d="m233.04 37.626v15.914h-8.4003v-12.18q0-3.3834-0.16333-4.6668-0.14001-1.2834-0.51335-1.8901-0.49002-0.81669-1.33-1.26-0.84003-0.46668-1.9134-0.46668-2.6134 0-4.1068 2.0301-1.4934 2.0067-1.4934 5.5768v12.857h-8.3536v-26.134h8.3536v3.8268q1.8901-2.2867 4.0135-3.3601 2.1234-1.0967 4.6901-1.0967 4.5268 0 6.8602 2.7768 2.3567 2.7768 2.3567 8.0736z" />
|
||||
<path
|
||||
d="m252.97 19.986v7.4202h8.6103v5.9735h-8.6103v11.084q0 1.8201 0.72335 2.4734 0.72336 0.63002 2.8701 0.63002h4.2935v5.9735h-7.1636q-4.9468 0-7.0236-2.0534-2.0534-2.0767-2.0534-7.0235v-11.084h-4.1535v-5.9735h4.1535v-7.4202z" />
|
||||
</g>
|
||||
<g transform="matrix(.57894 0 0 .57432 95.638 23.862)" fill="#003087" aria-label="Another">
|
||||
<path
|
||||
d="m57.459 11.049h-14.047l-2.2167 6.3469h-9.0303l12.904-34.838h10.71l12.904 34.838h-9.0303zm-11.807-6.4635h9.5436l-4.7601-13.86z" />
|
||||
<path
|
||||
d="m102.19 1.4817v15.914h-8.4003v-12.18q0-3.3834-0.16334-4.6668-0.14-1.2834-0.51335-1.8901-0.49002-0.81669-1.33-1.26-0.84002-0.46668-1.9134-0.46668-2.6134 0-4.1068 2.0301-1.4934 2.0067-1.4934 5.5768v12.857h-8.3536v-26.134h8.3536v3.8268q1.8901-2.2867 4.0135-3.3601 2.1234-1.0967 4.6901-1.0967 4.5268 0 6.8602 2.7768 2.3567 2.7768 2.3567 8.0736z" />
|
||||
<path
|
||||
d="m125.43-3.3951q-2.7768 0-4.2468 2.0067-1.4467 1.9834-1.4467 5.7402t1.4467 5.7635q1.47 1.9834 4.2468 1.9834 2.7301 0 4.1768-1.9834 1.4467-2.0067 1.4467-5.7635t-1.4467-5.7402q-1.4467-2.0067-4.1768-2.0067zm0-5.9735q6.7435 0 10.524 3.6401 3.8034 3.6401 3.8034 10.08 0 6.4402-3.8034 10.08-3.7801 3.6401-10.524 3.6401-6.7669 0-10.594-3.6401-3.8034-3.6401-3.8034-10.08 0-6.4402 3.8034-10.08 3.8268-3.6401 10.594-3.6401z" />
|
||||
<path
|
||||
d="m157.99-16.159v7.4202h8.6103v5.9735h-8.6103v11.084q0 1.8201 0.72336 2.4734 0.72336 0.63002 2.8701 0.63002h4.2935v5.9735h-7.1636q-4.9468 0-7.0236-2.0534-2.0534-2.0767-2.0534-7.0235v-11.084h-4.1535v-5.9735h4.1535v-7.4202z" />
|
||||
<path
|
||||
d="m201.02 1.4817v15.914h-8.4002v-12.134q0-3.4301-0.16334-4.7135-0.14001-1.2834-0.51335-1.8901-0.49002-0.81669-1.33-1.26-0.84003-0.46668-1.9134-0.46668-2.6134 0-4.1068 2.0301-1.4934 2.0067-1.4934 5.5768v12.857h-8.3536v-36.308h8.3536v14q1.89-2.2867 4.0134-3.3601 2.1234-1.0967 4.6901-1.0967 4.5268 0 6.8602 2.7768 2.3567 2.7768 2.3567 8.0736z" />
|
||||
<path
|
||||
d="m237.91 4.2585v2.3801h-19.531q0.30334 2.9401 2.1234 4.4101 1.8201 1.47 5.0868 1.47 2.6367 0 5.3902-0.77002 2.7768-0.79336 5.6935-2.3801v6.4402q-2.9634 1.12-5.9268 1.6801-2.9634 0.58335-5.9268 0.58335-7.0936 0-11.037-3.5934-3.9201-3.6168-3.9201-10.127 0-6.3935 3.8501-10.057 3.8734-3.6634 10.64-3.6634 6.1602 0 9.847 3.7101 3.7101 3.7101 3.7101 9.917zm-8.5869-2.7768q0-2.3801-1.4-3.8268-1.3767-1.47-3.6168-1.47-2.4267 0-3.9434 1.3767-1.5167 1.3534-1.8901 3.9201z" />
|
||||
<path
|
||||
d="m266.64-1.6217q-1.0967-0.51335-2.1934-0.74669-1.0734-0.25667-2.1701-0.25667-3.2201 0-4.9702 2.0767-1.7267 2.0534-1.7267 5.9035v12.04h-8.3536v-26.134h8.3536v4.2935q1.61-2.5667 3.6868-3.7334 2.1001-1.19 5.0168-1.19 0.42001 0 0.91002 0.046668 0.49002 0.023334 1.4234 0.14z" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
</a>
|
||||
</section>
|
||||
<p>It requires <strong>a lot of time and some money</strong> to create the extension, keep up with browser
|
||||
changes, read and answer emails, bug reports and feature requests, and actually publish the final versions.
|
||||
<em>Any contribution is appreciated. Thank you!</em></p>
|
||||
|
||||
<h2>Overview</h2>
|
||||
<p>DownThemAll! is an extension designed for people who have to download a lot of files and do not want to click on
|
||||
each individual link.
|
||||
Subfolders and renaming masks also help you sort downloads quickly. Customizable filters will help you to rapidly
|
||||
select what links to download, </p>
|
||||
<p>What's more, DownThemAll! comes with the OneClick feature which will select files using your last used filters
|
||||
and preferences.</p>
|
||||
|
||||
<h2>Getting Started</h2>
|
||||
<p>After installing DownThemAll! there will be a new button in your browser toolbar. You can add or remove this
|
||||
button using your browser's customization preferences. The button gives you quick and easy access to DownThemAll!
|
||||
main features.</p>
|
||||
<ul>
|
||||
<li>DownThemAll! + OneClick for the current or all tabs in the current window</li>
|
||||
<li>Manually adding downloads</li>
|
||||
<li>Opening the Manager or the extension preferences</li>
|
||||
</ul>
|
||||
<p>Most user will want to start using the extension with the DownThemAll! action, which brings up a selection window
|
||||
for the current tab where you can select/filter links and media contained in the website, and select the location
|
||||
where to save files (within your Downloads directory).</p>
|
||||
<p>After you queue some downloads, the Manager will open in a new tab by default. You can change that behavior to
|
||||
not have it open automatically, or open in a new window instead of a tab.</p>
|
||||
<p>The Manager will then allow you to start, pause, cancel or remove downloads, open completed files, and more.</p>
|
||||
<p>The following video demonstrates how to add and manage, some downloads:</p>
|
||||
<figure>
|
||||
<video src="first.webm" poster="first.jpg"></video>
|
||||
</figure>
|
||||
|
||||
<p>Once you have configured your preferred settings and filters, you can speed up future queuing by using OneClick!:
|
||||
</p>
|
||||
<figure>
|
||||
<video src="oneclick.webm" poster="oneclick.jpg"></video>
|
||||
</figure>
|
||||
|
||||
|
||||
<h2>Context Menu</h2>
|
||||
<p>DownThemAll! is also available from your context menu (right clicking on elements of a website). Along with the
|
||||
usual actions, the context menus also offers way to queue individual links, images or videos.</p>
|
||||
<figure>
|
||||
<video src="onecontext.webm" poster="onecontext.jpg"></video>
|
||||
</figure>
|
||||
|
||||
<h2>Manually Adding Downloads</h2>
|
||||
<p>DownThemAll! allows to manually add downloads. If further supports batches, where links follow a certain pattern,
|
||||
e.g. "image1" to "image10".</p>
|
||||
<figure>
|
||||
<video src="batches.webm" poster="batches.jpg"></video>
|
||||
</figure>
|
||||
|
||||
<h2>Preferences</h2>
|
||||
<p>The extension also comes with a wide variety of options and customizations, including choosing a light or dark theme, choosing the translation to use, custom filters and custom network limits.</p>
|
||||
<p>All those general settings are available in the Preferences tab.</p>
|
||||
<figure>
|
||||
<video src="prefs.webm" poster="prefs.jpg"></video>
|
||||
</figure>
|
||||
<p>If DownThemAll! is not yet available in your language, consider helping out. Our <a href="https://github.com/downthemall/downthemall/blob/master/_locales/Readme.md">Translation Guide</a> explains how to translate the extension.</a></p>
|
||||
|
||||
<h2>Hope you enjoy DownThemAll!</h2>
|
||||
<p>And thanks for all your support, be it in donations, reporting bugs, helping testing or translating it to your native language!</p>
|
||||
|
||||
</article>
|
||||
|
||||
<footer>
|
||||
<svg id="logo" viewBox="0 0 16 16">
|
||||
<defs>
|
||||
<linearGradient id="b">
|
||||
<stop stop-color="#116597" offset="0" />
|
||||
<stop stop-color="#062638" offset="1" />
|
||||
</linearGradient>
|
||||
<linearGradient id="a">
|
||||
<stop stop-color="#fffe99" offset="0" />
|
||||
<stop stop-color="#e49218" offset=".2" />
|
||||
<stop stop-color="#116597" offset="1" />
|
||||
</linearGradient>
|
||||
<radialGradient id="c" xlink:href="#a" gradientUnits="userSpaceOnUse" cy="17.413" cx="11.75"
|
||||
gradientTransform="matrix(.41233 0 0 1.1548 3.24 -8.74)" r="10.752" />
|
||||
<linearGradient id="h" y2="-.242" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="7.763"
|
||||
gradientTransform="translate(2.495 -6.342) scale(.6787)" y1="4.218" x1="8.101" />
|
||||
<linearGradient id="i" y2="-.242" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="7.763"
|
||||
gradientTransform="translate(2.495 -1.882) scale(.6787)" y1="4.218" x1="8.101" />
|
||||
<linearGradient id="g" y2="-.242" xlink:href="#b" gradientUnits="userSpaceOnUse" x2="7.763"
|
||||
gradientTransform="translate(7.08 4.18) scale(.43866)" y1="4.218" x1="8.101" />
|
||||
<linearGradient id="f" y2="-.242" xlink:href="#b" gradientUnits="userSpaceOnUse" x2="7.763"
|
||||
gradientTransform="translate(7.657 1.298) scale(.43866)" y1="4.218" x1="8.101" />
|
||||
<linearGradient id="e" y2="-.242" xlink:href="#b" gradientUnits="userSpaceOnUse" x2="7.763"
|
||||
gradientTransform="translate(1.851 4.18) scale(.43866)" y1="4.218" x1="8.101" />
|
||||
<linearGradient id="d" y2="-.242" xlink:href="#b" gradientUnits="userSpaceOnUse" x2="7.763"
|
||||
gradientTransform="translate(1.851 1.298) scale(.43866)" y1="4.218" x1="8.101" />
|
||||
</defs>
|
||||
<g stroke="#072739">
|
||||
<g stroke-width=".646">
|
||||
<path
|
||||
d="M4.561 7.134v1.515H1.996v.262l2.949 3.333 2.666 3.05h.99l2.686-3.05 2.848-3.252V8.65h-2.727V7.134H4.561z"
|
||||
fill="url(#c)" />
|
||||
<g stroke-linecap="round" stroke-dashoffset="10" fill-rule="evenodd">
|
||||
<path fill="url(#d)" d="M4.562 1.346h1.649v1.649H4.562z" />
|
||||
<path fill="url(#e)" d="M4.562 4.228h1.649v1.649H4.562z" />
|
||||
<path fill="url(#f)" d="M10.368 1.346h1.649v1.649h-1.649z" />
|
||||
<path fill="url(#g)" d="M9.792 4.228h1.649v1.649H9.792z" />
|
||||
</g>
|
||||
</g>
|
||||
<g fill-rule="evenodd" stroke-linecap="round" stroke-dashoffset="10">
|
||||
<path fill="url(#h)" d="M6.689-6.268H9.24v2.551H6.689z" transform="translate(2.874 4.614) scale(.64633)" />
|
||||
<path fill="url(#i)" d="M6.689-1.808H9.24V.743H6.689z" transform="translate(2.874 4.614) scale(.64633)" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<section>
|
||||
<p>Copyright © 2007-2018 Nils Maier, Stefano Verna, Federico Parodi</p>
|
||||
<p>Copyright © 2007-2019 Nils Maier</p>
|
||||
<p>The information on this website is licensed under the
|
||||
<a href="https://creativecommons.org/licenses/by-sa/4.0/">
|
||||
Creative Commons Attribution-ShareAlike 4.0 International License</a>.</p>
|
||||
</section>
|
||||
<a id="homepage" href="https://downthemall.org/">
|
||||
<svg viewBox="0 0 250 32" height="20" xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="matrix(1.1174 0 0 1.122 -217.76 -441.22)">
|
||||
<path
|
||||
d="m277.86 402.4c-2.106 0.594-3.9921 1.3387-5.0625 3.0371-1.8782 2.9802-1.8825 0.50072-5.0625 1.0117-0.075 4.312-1.6927 7.0814-1.0117 12.148 0.251 1.099-0.2614 1.8228 2.0234 2.0254 5.078-2.0169 2.6252-12.605 9.1113-13.162 0.661 5.076 1.325 12.532 3.0371 14.174h2.0254c2.0004 0 2.4284-0.24992 2.0254-4.0449-0.157-1.478-1.5594-2.1928-2.0234-4.0508-0.436-1.744-0.20767-2.7525-1.0137-5.0625 0.20397-2.5435-3.0757-5.9543-4.0488-6.0762z" />
|
||||
<path
|
||||
d="m205.98 396.32c0.71583-0.71583 3.037 0 3.037 0 3.312 2.743 2.107 7.979 3.037 12.148 0.97 4.354 2.863 8.229 3.037 12.149-3.865 0.827-3.919-2.155-5.062-4.05-3.517 0.195-3.843 3.58-7.086 4.05 0 0-3.0927 1.1003-6.074 0-2.2496-1.309-2.6451-6.2394-0.9158-9.8255 1.7293-3.5861 5.5833-5.828 10.027-5.3615 0 0-2.1472-6.9628 0-9.11zm-7.087 21.261c5.626-0.111 9.345-2.129 9.111-8.1-5.62-4-11.843 3.748-9.111 8.1z" />
|
||||
<path
|
||||
d="m262.67 400.37c3.124 1.378 4.2238 9.6188 3.037 14.174-0.21875 0.83965-3.6 4.9793-4.049 5.062-5.6104 1.0329-9.589-0.535-13.161-2.024-3.76 0.627-4.631 4.142-10.124 3.037-2.976-2.578-3.758-15.21 2.025-15.187 0.646 5.261-2.233 8.114 0 12.149 7.523 0.437 4.919-9.254 9.111-12.149 4.209 1.404 0.0379 4.9881 2.024 8.1 0.7405 1.1602 0.55971 3.037 2.025 3.037h5.062c2.561-0.813 3.5092-3.7334 4.049-6.074 1.0218-4.4307-3.744-7.344 1e-3 -10.125z" />
|
||||
<path
|
||||
d="m229.26 404.42c4.2274 1.6428 6.429 7.195 4.049 13.161-6.917 2.7019-16.888 6.2299-17.211-1.012-0.35916-8.0617 4.062-15.685 13.162-12.149zm-9.111 11.136c2.075 3.041 7.753 2.154 10.124 0 2.323-10.366-12.448-10.366-10.124 0z" />
|
||||
<path
|
||||
d="m415.54 393.28c1.635-0.285 1.742 0.957 3.037 1.012 0.117 7.88 0.244 15.768-6.074 17.211 0.518-6.569 1.518-12.656 3.037-18.223z" />
|
||||
<path
|
||||
d="m397.32 396.32c0.901 0.449 1.811 0.89 2.024 2.025 1.436 2.366 1.224 7.424 1.013 12.148-0.182 4.063 1.111 10.063-3.037 10.124-1.656-5.939-1.656-18.356 0-24.297z" />
|
||||
<path
|
||||
d="m405.42 396.32c0.901 0.449 1.811 0.89 2.024 2.025 1.436 2.366 1.225 7.424 1.013 12.148-0.182 4.063 1.112 10.063-3.037 10.124-1.656-5.939-1.656-18.356 0-24.297z" />
|
||||
<path
|
||||
d="m386.18 405.43c1.879 2.172 2.706 5.394 3.037 9.112 0.405 2.632 3.021 3.053 3.037 6.074-3.694 0.657-5.392-0.683-7.086-2.025-1.896 2.882-11.656 3.4133-12.148 0-1.2181-8.4422 3.734-13.813 13.16-13.161zm-10.123 11.136c5.229 3.119 8.32-1.521 8.123-7.087-3.941-4.338-8.175 1.277-8.123 7.087z" />
|
||||
<path d="m412.5 414.54c2.928 0.446 4.614 2.134 5.062 5.062-3.131 3.21-8.628-1.578-5.062-5.062z" />
|
||||
<g fill="#069">
|
||||
<path
|
||||
d="m344.67 399.36c-3.462 3.288-12.431 1.068-14.174 6.074-0.212 4.938 5.378 4.072 10.124 4.05-0.763 3.287-5.684 2.415-8.099 4.05 0.194 6.297 7.9627 1.1977 12.148 3.037 2.1858 0.96059-2.6665 2.6983-4.05 3.037-0.92 0.229-7.2519 3.9961-10.124 1.013-4.022-4.1774-6.0966-12.401-2.0268-19.74 2.1561-3.8884 7.9908-2.3919 12.151-3.5449 2.1724-1.0195 4.0825-0.57137 4.051 2.024z" />
|
||||
<path
|
||||
d="m368.97 398.35c0.91935 1.2579 1.638 4.258 2.024 7.086 0.632 4.615 1.344 11.963-3.037 12.149 0.605-6.006-1.776-9.022-1.012-15.187-2.943 2.12-2.8572 7.4034-6.074 9.112-5.4038 2.8702-7.236-2.214-10.124-4.05-0.162 4.899 0.612 10.735-4.05 11.136-0.788-6.862 1.383-10.766 1.013-17.21 6.881-1.144 5.642 5.832 10.124 7.086 2.854-2.881 4.6308-6.3006 7.086-10.123 0.7296-1.1359 3.2534-1.0889 4.05 1e-3z" />
|
||||
<path
|
||||
d="m299.12 404.42c2.5659-0.14763 2.6804 4.5418 3.037 7.087 0.319 2.835 0.61 6.509-1.012 8.099-3.139 1.088-1.619-3.049-2.025-5.062-0.701-3.477-2.194-6.897 0-10.124z" />
|
||||
<path
|
||||
d="m324 395.29c-4.1284 0.12154 0.92333 9.4224-3.6191 9.1289-3.094-0.731-3.6892 1.0347-6.0742 1.0117-5.024-0.414 3.2846-5.0625 3.2846-5.0625-1.3331-0.17112-4.8554 0.83219-4.9679-2.0635-1.1226-0.18087-1.4286 0.17857-3.0288 0.0563-0.30668 3.1413-2.5989 3.3131-5.6576 3.0448-6.3424-0.5564-15.93 1.6227-20.001 5.0366-0.88745 0.20112-1.9712 0.15704-2.4673-0.0332l0.44194 2.0606c8.225-2.236 14.819-5.3086 26.322-5.0625 0.802 5.947-2.2449 15.743 3.0371 17.211 4.327-0.057 0.29512-5.5363 2.0234-9.0879 1.899-3.9024 2.4597-3.319 5.0625-4.0723 5.9836-1.7317 0.3075 9.815 5.0625 10.123 3.109 0.858 1.9194-3.3815 2.0234-5.0625 0.3-4.805 0.0473-13.108-1.0117-17.211-0.15291-0.0158-0.29651-0.0215-0.42969-0.0176z" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</a>
|
||||
</footer>
|
||||
<script>
|
||||
for (const video of document.querySelectorAll("video")) {
|
||||
const p = document.createElement("div");
|
||||
p.className = "play";
|
||||
video.parentElement.appendChild(p);
|
||||
video.onclick = () => {
|
||||
video.pause();
|
||||
video.currentTime = 0;
|
||||
p.style.display = "block";
|
||||
}
|
||||
video.onended = () => {
|
||||
p.style.display = "block";
|
||||
video.currentTime = 0;
|
||||
};
|
||||
p.onclick = () => {
|
||||
p.style.display = "none";
|
||||
video.currentTime = 0;
|
||||
video.play();
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
BIN
docs/landing/oneclick.jpg
Executable file
After Width: | Height: | Size: 43 KiB |
BIN
docs/landing/oneclick.png
Executable file
After Width: | Height: | Size: 82 KiB |
BIN
docs/landing/oneclick.webm
Executable file
BIN
docs/landing/onecontext.jpg
Executable file
After Width: | Height: | Size: 47 KiB |
BIN
docs/landing/onecontext.png
Executable file
After Width: | Height: | Size: 106 KiB |
BIN
docs/landing/onecontext.webm
Executable file
BIN
docs/landing/prefs.jpg
Executable file
After Width: | Height: | Size: 48 KiB |
BIN
docs/landing/prefs.png
Executable file
After Width: | Height: | Size: 100 KiB |
BIN
docs/landing/prefs.webm
Executable file
18
docs/landing/produce.py
Executable file
@ -0,0 +1,18 @@
|
||||
import sys
|
||||
from path import Path
|
||||
from subprocess import check_call
|
||||
|
||||
options = '-map v:0 -map_metadata -1 -c:v libvpx-vp9 -deadline best -b:v 0 -crf 5 -pass 2 -row-mt 1 -vf scale=720:480:force_original_aspect_ratio=decrease:flags=spline+accurate_rnd+full_chroma_int+full_chroma_inp,pad=720:480:(ow-iw)/2:(oh-ih)/2:color=White'.split(" ")
|
||||
|
||||
for f in Path(".").files("*.mov"):
|
||||
for p in [1, 2]:
|
||||
d = f.namebase + ".webm"
|
||||
final = ["ffmpeg", "-y", "-i", f.name] + options + ["-pass", str(p), d]
|
||||
print(final)
|
||||
check_call(final)
|
||||
for f in Path(".").files("*.webm"):
|
||||
for ext in [".png", ".jpg"]:
|
||||
d = f.namebase + ext
|
||||
final = ["ffmpeg", "-y", "-i", f, "-ss", "1", "-q:v", "2", "-frames", "1", d]
|
||||
print(final)
|
||||
check_call(final)
|
BIN
docs/landing/res/ReenieBeanie-Regular.woff2
Executable file
BIN
docs/landing/res/background-tile.png
Executable file
After Width: | Height: | Size: 14 KiB |
BIN
docs/landing/res/footerbg.png
Executable file
After Width: | Height: | Size: 10 KiB |
3
docs/landing/res/go.svg
Executable file
@ -0,0 +1,3 @@
|
||||
<svg version="1.1" viewBox="0 0 16 16" width="16" height="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m8 0a8 8 0 0 0-8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0-8-8zm-3 3 8 5-8 5v-5-5z" fill="rgb(235, 176, 37)" fill-rule="evenodd"/>
|
||||
</svg>
|
After Width: | Height: | Size: 248 B |
55
docs/landing/res/halo.svg
Executable file
@ -0,0 +1,55 @@
|
||||
<svg version="1.1" viewBox="0 0 200 180" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<defs>
|
||||
<radialGradient id="d" cx="161.46" cy="-144.02" r="160.02" gradientTransform="matrix(1 0 0 .99838 0 -.23281)" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#febb00" offset="0"/>
|
||||
<stop stop-color="#ffd571" stop-opacity=".49804" offset=".64286"/>
|
||||
<stop stop-color="#ffe5a7" stop-opacity="0" offset=".95153"/>
|
||||
<stop stop-color="#ffe5a7" stop-opacity="0" offset="1"/>
|
||||
</radialGradient>
|
||||
<filter id="e" color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur stdDeviation="0.32807532"/>
|
||||
</filter>
|
||||
<radialGradient id="c" cx="161.46" cy="-144.02" r="160.02" gradientTransform="matrix(1 0 0 .99838 0 -.23281)" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#ffd14e" offset="0"/>
|
||||
<stop stop-color="#ffeeb5" stop-opacity=".49804" offset=".71429"/>
|
||||
<stop stop-color="#ffeeb5" stop-opacity=".49804" offset="1"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="b" cx="12.389" cy="11.882" r="8.199" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#e69412" offset="0"/>
|
||||
<stop stop-color="#f4c478" stop-opacity="0" offset="1"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="a" cx="11.75" cy="17.413" r="10.752" gradientTransform="matrix(3.3776 0 0 9.4595 121.98 -293.39)" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#fffe99" offset="0"/>
|
||||
<stop stop-color="#f69706" offset=".2"/>
|
||||
<stop stop-color="#136fa7" offset="1"/>
|
||||
</radialGradient>
|
||||
</defs>
|
||||
<g transform="translate(-61.457 224.02)">
|
||||
<g transform="matrix(.62494 0 0 .62494 60.557 -51.015)" fill="url(#d)" fill-rule="evenodd">
|
||||
<path d="m161.46-144.02 72.75 144.62-46.61 15.146z"/>
|
||||
<path d="m161.46-144.02 143.86 74.228-28.81 39.653z"/>
|
||||
<path d="m161.46-144.02 160.02-24.507v49.014z"/>
|
||||
<path d="m161.46-144.02 115.05-113.88 28.81 39.653z"/>
|
||||
<path d="m161.46-144.02 26.14-159.76 46.615 15.146z"/>
|
||||
<path d="m161.46-144.02-72.755-144.61 46.615-15.146z"/>
|
||||
<path d="m161.46-144.02-143.86-74.228 28.81-39.653z"/>
|
||||
<path d="m161.46-144.02-160.02 24.507-2.7e-6 -49.014z"/>
|
||||
<path d="m161.46-144.02-115.05 113.89-28.81-39.653z"/>
|
||||
<path d="m161.46-144.02-26.14 159.76-46.618-15.146z"/>
|
||||
</g>
|
||||
<g transform="matrix(.59435 -.19312 .19312 .59435 93.307 -24.24)" fill="url(#c)" fill-rule="evenodd" opacity=".88">
|
||||
<path d="m161.46-144.02 72.75 144.62-46.61 15.146z"/>
|
||||
<path d="m161.46-144.02 143.86 74.228-28.81 39.653z"/>
|
||||
<path d="m161.46-144.02 160.02-24.507v49.014z"/>
|
||||
<path d="m161.46-144.02 115.05-113.88 28.81 39.653z"/>
|
||||
<path d="m161.46-144.02 26.14-159.76 46.615 15.146z"/>
|
||||
<path d="m161.46-144.02-72.755-144.61 46.615-15.146z"/>
|
||||
<path d="m161.46-144.02-143.86-74.228 28.81-39.653z"/>
|
||||
<path d="m161.46-144.02-160.02 24.507-2.7e-6 -49.014z"/>
|
||||
<path d="m161.46-144.02-115.05 113.89-28.81-39.653z"/>
|
||||
<path d="m161.46-144.02-26.14 159.76-46.618-15.146z"/>
|
||||
</g>
|
||||
<path transform="matrix(7.0729 0 0 7.4575 73.647 -229.61)" d="m20.588 11.882a8.199 8.199 0 1 1-16.398 0 8.199 8.199 0 1 1 16.398 0z" fill="url(#b)" filter="url(#e)"/>
|
||||
<path d="m133.31-207.91v55.137h-17.218c-6.602-0.97334-3.1317 2.1508-3.1317 2.1508l23.494 26.472 18.653 21.422c1.9951 2.9976 3.1147 2.8985 6.486 2.8985 3.5137 0.43957 4.2275-0.28033 6.4176-2.757l19.07-21.564 22.666-25.81c3.6888-3.9672-2.8847-2.8126-2.8847-2.8126h-18.954v-54.904c0.65539-9.337-1.0536-9.0538-8.6714-8.7929h-37.608c-7.6308-0.26075-8.3181 0.1211-8.3181 8.5607z" fill="url(#a)" stroke="#0a3b56" stroke-width="5.1532"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.6 KiB |
@ -22,6 +22,8 @@ import {
|
||||
runtime,
|
||||
history,
|
||||
sessions,
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
OnInstalled,
|
||||
} from "./browser";
|
||||
import { Bus } from "./bus";
|
||||
import { filterInSitu } from "./util";
|
||||
@ -135,6 +137,33 @@ class Handler {
|
||||
}
|
||||
}
|
||||
|
||||
function getMajor(version?: string) {
|
||||
if (!version) {
|
||||
return "";
|
||||
}
|
||||
const match = version.match(/^\d+\.\d+/);
|
||||
if (!match) {
|
||||
return "";
|
||||
}
|
||||
return match[0];
|
||||
}
|
||||
|
||||
runtime.onInstalled.addListener(({reason, previousVersion}: OnInstalled) => {
|
||||
const {version} = runtime.getManifest();
|
||||
const major = getMajor(version);
|
||||
const prevMajor = getMajor(previousVersion);
|
||||
if (reason === "update" && major !== prevMajor) {
|
||||
tabs.create({
|
||||
url: `https://about.downthemall.org/changelog/?cur=${major}&prev=${prevMajor}`,
|
||||
});
|
||||
}
|
||||
else if (reason === "install") {
|
||||
tabs.create({
|
||||
url: `https://about.downthemall.org/4.0/?cur=${major}`,
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
locale.then(() => {
|
||||
const menuHandler = new class Menus extends Handler {
|
||||
constructor() {
|
||||
|
@ -73,7 +73,7 @@ class Numeral implements Generator {
|
||||
this.digits = dir ? rawpieces[0].length : rawpieces[1].length;
|
||||
this.length = Math.floor(
|
||||
(this.stop - this.start + (dir ? 1 : -1)) / this.step);
|
||||
this.preview = this[Symbol.iterator]().next().value;
|
||||
this.preview = this[Symbol.iterator]().next().value as string;
|
||||
Object.freeze(this);
|
||||
}
|
||||
|
||||
@ -93,6 +93,60 @@ class Numeral implements Generator {
|
||||
}
|
||||
}
|
||||
|
||||
class Character implements Generator {
|
||||
public readonly start: number;
|
||||
|
||||
public readonly stop: number;
|
||||
|
||||
public readonly step: number;
|
||||
|
||||
public readonly length: number;
|
||||
|
||||
public readonly preview: string;
|
||||
|
||||
constructor(str: string) {
|
||||
const rawpieces = str.split(":").map(e => e.trim());
|
||||
const pieces = rawpieces.map((e, i) => {
|
||||
if (i === 2) {
|
||||
return reallyParseInt(e);
|
||||
}
|
||||
if (e.length > 1) {
|
||||
throw new Error("Malformed Character sequence");
|
||||
}
|
||||
return e.charCodeAt(0);
|
||||
});
|
||||
if (pieces.length < 2) {
|
||||
throw new Error("Invalid input");
|
||||
}
|
||||
const [start, stop, step] = pieces;
|
||||
if (step === 0) {
|
||||
throw new Error("Invalid step");
|
||||
}
|
||||
this.step = !step ? 1 : step;
|
||||
const dir = this.step > 0;
|
||||
if (dir && start > stop) {
|
||||
throw new Error("Invalid sequence");
|
||||
}
|
||||
else if (!dir && start < stop) {
|
||||
throw new Error("Invalid sequence");
|
||||
}
|
||||
this.start = start;
|
||||
this.stop = stop;
|
||||
this.length = Math.floor(
|
||||
(this.stop - this.start + (dir ? 1 : -1)) / this.step);
|
||||
this.preview = this[Symbol.iterator]().next().value as string;
|
||||
Object.freeze(this);
|
||||
}
|
||||
|
||||
*[Symbol.iterator]() {
|
||||
const {start, stop, step} = this;
|
||||
const dir = step > 0;
|
||||
for (let i = start; (dir ? i <= stop : i >= stop); i += step) {
|
||||
yield String.fromCharCode(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export class BatchGenerator implements Generator {
|
||||
private readonly gens: Generator[];
|
||||
|
||||
@ -120,9 +174,14 @@ export class BatchGenerator implements Generator {
|
||||
try {
|
||||
this.gens.push(new Numeral(tok));
|
||||
}
|
||||
catch (ex) {
|
||||
this.gens.push(new Literal(`[${tok}]`));
|
||||
this.hasInvalid = true;
|
||||
catch {
|
||||
try {
|
||||
this.gens.push(new Character(tok));
|
||||
}
|
||||
catch {
|
||||
this.gens.push(new Literal(`[${tok}]`));
|
||||
this.hasInvalid = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (str) {
|
||||
|
@ -9,33 +9,33 @@ interface ExtensionListener {
|
||||
}
|
||||
|
||||
export interface MessageSender {
|
||||
tab?: Tab;
|
||||
frameId?: number;
|
||||
id?: number;
|
||||
url?: string;
|
||||
tlsChannelId?: string;
|
||||
readonly tab?: Tab;
|
||||
readonly frameId?: number;
|
||||
readonly id?: number;
|
||||
readonly url?: string;
|
||||
readonly tlsChannelId?: string;
|
||||
}
|
||||
|
||||
|
||||
export interface Tab {
|
||||
id?: number;
|
||||
incognito?: boolean;
|
||||
readonly id?: number;
|
||||
readonly incognito?: boolean;
|
||||
}
|
||||
|
||||
export interface MenuClickInfo {
|
||||
menuItemId: string | number;
|
||||
button?: number;
|
||||
linkUrl?: string;
|
||||
srcUrl?: string;
|
||||
readonly menuItemId: string | number;
|
||||
readonly button?: number;
|
||||
readonly linkUrl?: string;
|
||||
readonly srcUrl?: string;
|
||||
}
|
||||
|
||||
|
||||
export interface RawPort {
|
||||
error: any;
|
||||
name: string;
|
||||
onDisconnect: ExtensionListener;
|
||||
onMessage: ExtensionListener;
|
||||
sender?: MessageSender;
|
||||
readonly error: any;
|
||||
readonly name: string;
|
||||
readonly sender?: MessageSender;
|
||||
readonly onDisconnect: ExtensionListener;
|
||||
readonly onMessage: ExtensionListener;
|
||||
disconnect: () => void;
|
||||
postMessage: (message: any) => void;
|
||||
}
|
||||
@ -57,7 +57,7 @@ type Header = {name: string; value: string};
|
||||
|
||||
export interface DownloadOptions {
|
||||
conflictAction: string;
|
||||
filename: string;
|
||||
filename?: string;
|
||||
saveAs: boolean;
|
||||
url: string;
|
||||
method?: string;
|
||||
@ -82,15 +82,22 @@ interface Downloads {
|
||||
getFileIcon(id: number, options?: any): Promise<string>;
|
||||
setShelfEnabled(state: boolean): void;
|
||||
removeFile(manId: number): Promise<void>;
|
||||
onCreated: ExtensionListener;
|
||||
onChanged: ExtensionListener;
|
||||
onErased: ExtensionListener;
|
||||
readonly onCreated: ExtensionListener;
|
||||
readonly onChanged: ExtensionListener;
|
||||
readonly onErased: ExtensionListener;
|
||||
readonly onDeterminingFilename?: ExtensionListener;
|
||||
}
|
||||
|
||||
interface WebRequest {
|
||||
onBeforeSendHeaders: WebRequestListener;
|
||||
onSendHeaders: WebRequestListener;
|
||||
onHeadersReceived: WebRequestListener;
|
||||
readonly onBeforeSendHeaders: WebRequestListener;
|
||||
readonly onSendHeaders: WebRequestListener;
|
||||
readonly onHeadersReceived: WebRequestListener;
|
||||
}
|
||||
|
||||
export interface OnInstalled {
|
||||
readonly reason: string;
|
||||
readonly previousVersion?: string;
|
||||
readonly temporary: boolean;
|
||||
}
|
||||
|
||||
export const {browserAction} = polyfill;
|
||||
@ -107,5 +114,6 @@ export const {tabs} = polyfill;
|
||||
export const {webNavigation} = polyfill;
|
||||
export const {webRequest}: {webRequest: WebRequest} = polyfill;
|
||||
export const {windows} = polyfill;
|
||||
export const {theme} = polyfill;
|
||||
|
||||
export const CHROME = navigator.appVersion.includes("Chrome/");
|
||||
|
32
lib/bus.ts
@ -8,32 +8,35 @@ import {runtime, tabs, RawPort, MessageSender} from "./browser";
|
||||
export class Port extends EventEmitter {
|
||||
private port: RawPort | null;
|
||||
|
||||
private disconnected = false;
|
||||
|
||||
constructor(port: RawPort) {
|
||||
super();
|
||||
this.port = port;
|
||||
|
||||
let disconnected = false;
|
||||
const disconnect = () => {
|
||||
if (disconnected) {
|
||||
return;
|
||||
}
|
||||
disconnected = true;
|
||||
this.port = null; // Break the cycle
|
||||
this.emit("disconnect", this, port);
|
||||
};
|
||||
// Nasty firefox bug, thus listen for tab removal explicitly
|
||||
if (port.sender && port.sender.tab && port.sender.tab.id) {
|
||||
const otherTabId = port.sender.tab.id;
|
||||
const tabListener = function(tabId: number) {
|
||||
const tabListener = (tabId: number) => {
|
||||
if (tabId !== otherTabId) {
|
||||
return;
|
||||
}
|
||||
disconnect();
|
||||
this.disconnect();
|
||||
};
|
||||
tabs.onRemoved.addListener(tabListener);
|
||||
}
|
||||
port.onMessage.addListener(this.onMessage.bind(this));
|
||||
port.onDisconnect.addListener(disconnect);
|
||||
port.onDisconnect.addListener(this.disconnect.bind(this));
|
||||
}
|
||||
|
||||
disconnect() {
|
||||
if (this.disconnected) {
|
||||
return;
|
||||
}
|
||||
this.disconnected = true;
|
||||
const {port} = this;
|
||||
this.port = null; // Break the cycle
|
||||
this.emit("disconnect", this, port);
|
||||
}
|
||||
|
||||
get name() {
|
||||
@ -120,6 +123,9 @@ export const Bus = new class extends EventEmitter {
|
||||
port.disconnect();
|
||||
return;
|
||||
}
|
||||
this.ports.emit(port.name, new Port(port));
|
||||
const wrapped = new Port(port);
|
||||
if (!this.ports.emit(port.name, wrapped)) {
|
||||
wrapped.disconnect();
|
||||
}
|
||||
}
|
||||
}();
|
||||
|
4
lib/ipreg.ts
Normal file
@ -0,0 +1,4 @@
|
||||
"use strict";
|
||||
// License: MIT
|
||||
|
||||
export const IPReg = /^(?:(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$|^(?:(?:(?:[0-9a-fA-F]{1,4}):){7}(?:(?:[0-9a-fA-F]{1,4})|:)|(?:(?:[0-9a-fA-F]{1,4}):){6}(?:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|:(?:[0-9a-fA-F]{1,4})|:)|(?:(?:[0-9a-fA-F]{1,4}):){5}(?::((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,2}|:)|(?:(?:[0-9a-fA-F]{1,4}):){4}(?:(:(?:[0-9a-fA-F]{1,4})){0,1}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,3}|:)|(?:(?:[0-9a-fA-F]{1,4}):){3}(?:(:(?:[0-9a-fA-F]{1,4})){0,2}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,4}|:)|(?:(?:[0-9a-fA-F]{1,4}):){2}(?:(:(?:[0-9a-fA-F]{1,4})){0,3}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,5}|:)|(?:(?:[0-9a-fA-F]{1,4}):){1}(?:(:(?:[0-9a-fA-F]{1,4})){0,4}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,6}|:)|(?::((?::(?:[0-9a-fA-F]{1,4})){0,5}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(?::(?:[0-9a-fA-F]{1,4})){1,7}|:)))(%[0-9a-zA-Z]{1,})?$/;
|
@ -191,6 +191,7 @@ export class BaseDownload {
|
||||
rv.destPath = dest.path;
|
||||
rv.destFull = dest.full;
|
||||
rv.currentName = this.browserName || rv.destName || rv.finalName;
|
||||
rv.currentFull = `${dest.path}/${rv.currentName}`;
|
||||
rv.error = this.error;
|
||||
rv.ext = this.renamer.p_ext;
|
||||
rv.retries = this.retries;
|
||||
|
@ -22,7 +22,8 @@ import {
|
||||
RUNNING,
|
||||
RETRYING
|
||||
} from "./state";
|
||||
import { Preroller } from "./preroller";
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
import { Preroller, PrerollResults } from "./preroller";
|
||||
|
||||
function isRecoverable(error: string) {
|
||||
switch (error) {
|
||||
@ -130,11 +131,13 @@ export class Download extends BaseDownload {
|
||||
}
|
||||
const options: DownloadOptions = {
|
||||
conflictAction: await Prefs.get("conflict-action"),
|
||||
filename: this.dest.full,
|
||||
saveAs: false,
|
||||
url: this.url,
|
||||
headers: [],
|
||||
};
|
||||
if (!CHROME) {
|
||||
options.filename = this.dest.full;
|
||||
}
|
||||
if (!CHROME && this.private) {
|
||||
options.incognito = true;
|
||||
}
|
||||
@ -194,15 +197,7 @@ export class Download extends BaseDownload {
|
||||
if (!res) {
|
||||
return;
|
||||
}
|
||||
if (res.mime) {
|
||||
this.mime = res.mime;
|
||||
}
|
||||
if (res.name) {
|
||||
this.serverName = res.name;
|
||||
}
|
||||
if (res.error) {
|
||||
this.cancelAccordingToError(res.error);
|
||||
}
|
||||
this.adoptPrerollResults(res);
|
||||
}
|
||||
catch (ex) {
|
||||
console.error("Failed to preroll", this, ex.toString(), ex.stack, ex);
|
||||
@ -215,6 +210,18 @@ export class Download extends BaseDownload {
|
||||
}
|
||||
}
|
||||
|
||||
adoptPrerollResults(res: PrerollResults) {
|
||||
if (res.mime) {
|
||||
this.mime = res.mime;
|
||||
}
|
||||
if (res.name) {
|
||||
this.serverName = res.name;
|
||||
}
|
||||
if (res.error) {
|
||||
this.cancelAccordingToError(res.error);
|
||||
}
|
||||
}
|
||||
|
||||
resume(forced = false) {
|
||||
if (!(FORCABLE & this.state)) {
|
||||
return;
|
||||
@ -391,4 +398,27 @@ export class Download extends BaseDownload {
|
||||
this.setMissing();
|
||||
}
|
||||
}
|
||||
|
||||
updatefromSuggestion(state: any) {
|
||||
const res: PrerollResults = {};
|
||||
if (state.mime) {
|
||||
res.mime = state.mime;
|
||||
}
|
||||
if (state.filename) {
|
||||
res.name = state.filename;
|
||||
}
|
||||
if (state.finalUrl) {
|
||||
res.finalURL = state.finalUrl;
|
||||
const detected = Preroller.maybeFindNameFromSearchParams(this, res);
|
||||
if (detected) {
|
||||
res.name = detected;
|
||||
}
|
||||
}
|
||||
try {
|
||||
this.adoptPrerollResults(res);
|
||||
}
|
||||
finally {
|
||||
this.markDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -82,6 +82,10 @@ export class Manager extends EventEmitter {
|
||||
|
||||
downloads.onChanged.addListener(this.onChanged.bind(this));
|
||||
downloads.onErased.addListener(this.onErased.bind(this));
|
||||
if (CHROME && downloads.onDeterminingFilename) {
|
||||
downloads.onDeterminingFilename.addListener(
|
||||
this.onDeterminingFilename.bind(this));
|
||||
}
|
||||
|
||||
Bus.onPort("manager", (port: Port) => {
|
||||
const mport = new ManagerPort(this, port);
|
||||
@ -89,6 +93,7 @@ export class Manager extends EventEmitter {
|
||||
this.ports.delete(mport);
|
||||
});
|
||||
this.ports.add(mport);
|
||||
return true;
|
||||
});
|
||||
Limits.on("changed", () => {
|
||||
this.resetScheduler();
|
||||
@ -157,6 +162,20 @@ export class Manager extends EventEmitter {
|
||||
this.manIds.delete(downloadId);
|
||||
}
|
||||
|
||||
onDeterminingFilename(state: any, suggest: Function) {
|
||||
const download = this.manIds.get(state.id);
|
||||
if (!download) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
download.updatefromSuggestion(state);
|
||||
}
|
||||
finally {
|
||||
const suggestion = {filename: download.dest.full};
|
||||
suggest(suggestion);
|
||||
}
|
||||
}
|
||||
|
||||
async resetScheduler() {
|
||||
this.scheduler = null;
|
||||
await this.startNext();
|
||||
|
@ -54,6 +54,9 @@ export class Preroller {
|
||||
}
|
||||
|
||||
get shouldPreroll() {
|
||||
if (CHROME) {
|
||||
return false;
|
||||
}
|
||||
const {uURL, renamer} = this.download;
|
||||
const {pathname, search, host} = uURL;
|
||||
if (PREROLL_NOPE.has(host)) {
|
||||
@ -167,39 +170,15 @@ export class Preroller {
|
||||
rv.mime = type.essence;
|
||||
}
|
||||
|
||||
const {p_ext: ext} = this.download.renamer;
|
||||
const dispHeader = headers.get("content-disposition");
|
||||
if (dispHeader) {
|
||||
const file = CDPARSER.parse(dispHeader);
|
||||
// Sanitize
|
||||
rv.name = sanitizePath(file.replace(/[/\\]+/g, "-"));
|
||||
}
|
||||
else if (!ext || PREROLL_SEARCHEXTS.has(ext.toLocaleLowerCase())) {
|
||||
const {searchParams} = this.download.uURL;
|
||||
let detected = "";
|
||||
for (const [, value] of searchParams) {
|
||||
if (!NAME_TESTER.test(value)) {
|
||||
continue;
|
||||
}
|
||||
const p = parsePath(value);
|
||||
if (!p.base || !p.ext) {
|
||||
continue;
|
||||
}
|
||||
if (!MimeDB.hasExtension(p.ext)) {
|
||||
continue;
|
||||
}
|
||||
if (rv.mime) {
|
||||
const mime = MimeDB.getMime(rv.mime);
|
||||
if (mime && !mime.extensions.has(p.ext.toLowerCase())) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
const sanitized = sanitizePath(p.name);
|
||||
if (sanitized.length <= detected.length) {
|
||||
continue;
|
||||
}
|
||||
detected = sanitized;
|
||||
}
|
||||
else {
|
||||
const detected = Preroller.maybeFindNameFromSearchParams(
|
||||
this.download, rv);
|
||||
if (detected) {
|
||||
rv.name = detected;
|
||||
}
|
||||
@ -231,4 +210,43 @@ export class Preroller {
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
|
||||
static maybeFindNameFromSearchParams(
|
||||
download: Download, res: PrerollResults) {
|
||||
const {p_ext: ext} = download.renamer;
|
||||
if (ext && !PREROLL_SEARCHEXTS.has(ext.toLocaleLowerCase())) {
|
||||
return undefined;
|
||||
}
|
||||
return Preroller.findNameFromSearchParams(download.uURL, res.mime);
|
||||
}
|
||||
|
||||
static findNameFromSearchParams(url: URL, mimetype?: string) {
|
||||
const {searchParams} = url;
|
||||
let detected = "";
|
||||
for (const [, value] of searchParams) {
|
||||
if (!NAME_TESTER.test(value)) {
|
||||
continue;
|
||||
}
|
||||
const p = parsePath(value);
|
||||
if (!p.base || !p.ext) {
|
||||
continue;
|
||||
}
|
||||
if (!MimeDB.hasExtension(p.ext)) {
|
||||
continue;
|
||||
}
|
||||
if (mimetype) {
|
||||
const mime = MimeDB.getMime(mimetype);
|
||||
if (mime && !mime.extensions.has(p.ext.toLowerCase())) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
const sanitized = sanitizePath(p.name);
|
||||
if (sanitized.length <= detected.length) {
|
||||
continue;
|
||||
}
|
||||
detected = sanitized;
|
||||
}
|
||||
return detected;
|
||||
}
|
||||
}
|
||||
|
@ -99,6 +99,5 @@ export class PrefWatcher {
|
||||
|
||||
changed(prefs: any, key: string, value: any) {
|
||||
this.value = value;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -9,7 +9,7 @@ import { donate, openPrefs, openUrls } from "./windowutils";
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
import { filters, FAST, Filter } from "./filters";
|
||||
import { WindowStateTracker } from "./windowstatetracker";
|
||||
import { windows } from "./browser";
|
||||
import { windows, CHROME } from "./browser";
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
import { BaseItem } from "./item";
|
||||
|
||||
@ -98,10 +98,16 @@ export async function select(links: BaseItem[], media: BaseItem[]) {
|
||||
type: "popup",
|
||||
});
|
||||
const window = await windows.create(windowOptions);
|
||||
tracker.track(window.id, null);
|
||||
tracker.track(window.id);
|
||||
try {
|
||||
if (!CHROME) {
|
||||
windows.update(window.id, tracker.getOptions({}));
|
||||
}
|
||||
const port = await Promise.race<Port>([
|
||||
new Promise<Port>(resolve => Bus.oncePort("select", resolve)),
|
||||
new Promise<Port>(resolve => Bus.oncePort("select", port => {
|
||||
resolve(port);
|
||||
return true;
|
||||
})),
|
||||
timeout<Port>(5 * 1000)]);
|
||||
if (!port.isSelf) {
|
||||
throw Error("Invalid sender connected");
|
||||
|
@ -6,7 +6,7 @@ import { Bus, Port } from "./bus";
|
||||
import { WindowStateTracker } from "./windowstatetracker";
|
||||
import { Promised, timeout } from "./util";
|
||||
import { donate } from "./windowutils";
|
||||
import { windows } from "./browser";
|
||||
import { windows, CHROME } from "./browser";
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
import { BaseItem } from "./item";
|
||||
|
||||
@ -21,10 +21,16 @@ export async function single(item: BaseItem | null) {
|
||||
type: "popup",
|
||||
});
|
||||
const window = await windows.create(windowOptions);
|
||||
tracker.track(window.id, null);
|
||||
tracker.track(window.id);
|
||||
try {
|
||||
if (!CHROME) {
|
||||
windows.update(window.id, tracker.getOptions({}));
|
||||
}
|
||||
const port: Port = await Promise.race<Port>([
|
||||
new Promise<Port>(resolve => Bus.oncePort("single", resolve)),
|
||||
new Promise<Port>(resolve => Bus.oncePort("single", port => {
|
||||
resolve(port);
|
||||
return true;
|
||||
})),
|
||||
timeout<Port>(5 * 1000)]);
|
||||
if (!port.isSelf) {
|
||||
throw Error("Invalid sender connected");
|
||||
|
@ -3,6 +3,7 @@
|
||||
|
||||
import * as psl from "psl";
|
||||
import { identity, memoize } from "./memoize";
|
||||
import { IPReg } from "./ipreg";
|
||||
export { debounce } from "../uikit/lib/util";
|
||||
|
||||
export class Promised {
|
||||
@ -237,7 +238,10 @@ export interface URLd extends URL {
|
||||
Object.defineProperty(URL.prototype, "domain", {
|
||||
get() {
|
||||
try {
|
||||
return hostToDomain(this.host) || this.host;
|
||||
const {hostname} = this;
|
||||
return IPReg.test(hostname) ?
|
||||
hostname :
|
||||
hostToDomain(hostname) || hostname;
|
||||
}
|
||||
catch (ex) {
|
||||
console.error(ex);
|
||||
|
@ -3,6 +3,8 @@
|
||||
|
||||
import { Prefs } from "./prefs";
|
||||
import { windows } from "./browser";
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
import { Port } from "./bus";
|
||||
|
||||
|
||||
const VALID_WINDOW_STATES = Object.freeze(new Set(["normal", "maximized"]));
|
||||
@ -80,34 +82,48 @@ export class WindowStateTracker {
|
||||
if (!this.windowId) {
|
||||
return;
|
||||
}
|
||||
const window = await windows.get(this.windowId);
|
||||
if (!VALID_WINDOW_STATES.has(window.state)) {
|
||||
return;
|
||||
try {
|
||||
const window = await windows.get(this.windowId);
|
||||
if (!VALID_WINDOW_STATES.has(window.state)) {
|
||||
return;
|
||||
}
|
||||
const previous = JSON.stringify(this);
|
||||
this.width = window.width;
|
||||
this.height = window.height;
|
||||
this.left = window.left;
|
||||
this.top = window.top;
|
||||
this.state = window.state;
|
||||
this.validate();
|
||||
if (previous === JSON.stringify(this)) {
|
||||
// Nothing changed
|
||||
return;
|
||||
}
|
||||
await this.save();
|
||||
}
|
||||
const previous = JSON.stringify(this);
|
||||
this.width = window.width;
|
||||
this.height = window.height;
|
||||
this.left = window.left;
|
||||
this.top = window.top;
|
||||
this.state = window.state;
|
||||
this.validate();
|
||||
if (previous === JSON.stringify(this)) {
|
||||
// Nothing changed
|
||||
return;
|
||||
catch {
|
||||
// ignored
|
||||
}
|
||||
await this.save();
|
||||
}
|
||||
|
||||
track(windowId: number, port: any) {
|
||||
track(windowId: number, port?: Port) {
|
||||
if (port) {
|
||||
port.on("resized", this.update);
|
||||
port.on("unload", e => this.finalize(e));
|
||||
port.on("disconnect", this.finalize.bind(this));
|
||||
}
|
||||
this.windowId = windowId;
|
||||
}
|
||||
|
||||
async finalize() {
|
||||
async finalize(state?: any) {
|
||||
if (state) {
|
||||
this.left = state.left;
|
||||
this.top = state.top;
|
||||
}
|
||||
await this.update();
|
||||
this.windowId = 0;
|
||||
if (state) {
|
||||
await this.save();
|
||||
}
|
||||
}
|
||||
|
||||
async save() {
|
||||
|
@ -1,11 +1,15 @@
|
||||
"use strict";
|
||||
// License: MIT
|
||||
|
||||
import { windows, tabs, runtime } from "../lib/browser";
|
||||
import { windows, tabs, runtime, CHROME } from "../lib/browser";
|
||||
import { getManager } from "./manager/man";
|
||||
import DEFAULT_ICONS from "../data/icons.json";
|
||||
import { Prefs } from "./prefs";
|
||||
import { _ } from "./i18n";
|
||||
import { WindowStateTracker } from "./windowstatetracker";
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
import { Port, Bus } from "./bus";
|
||||
import { timeout } from "./util";
|
||||
|
||||
const DONATE_URL = "https://www.downthemall.org/howto/donate/";
|
||||
const DONATE_LANG_URLS = Object.freeze(new Map([
|
||||
@ -114,11 +118,37 @@ export async function openManager(focus = true) {
|
||||
await windows.update(tab.windowId, {focused: true});
|
||||
return;
|
||||
}
|
||||
const windowOptions = {
|
||||
|
||||
const tracker = new WindowStateTracker("manager", {
|
||||
minWidth: 700,
|
||||
minHeight: 500,
|
||||
});
|
||||
await tracker.init();
|
||||
const windowOptions = tracker.getOptions({
|
||||
url,
|
||||
type: "popup",
|
||||
};
|
||||
await windows.create(windowOptions);
|
||||
});
|
||||
const window = await windows.create(windowOptions);
|
||||
tracker.track(window.id);
|
||||
try {
|
||||
if (!CHROME) {
|
||||
windows.update(window.id, tracker.getOptions({}));
|
||||
}
|
||||
const port = await Promise.race<Port>([
|
||||
new Promise<Port>(resolve => Bus.oncePort("manager", port => {
|
||||
resolve(port);
|
||||
return true;
|
||||
})),
|
||||
timeout<Port>(5 * 1000)]);
|
||||
if (!port.isSelf) {
|
||||
throw Error("Invalid sender connected");
|
||||
}
|
||||
tracker.track(window.id, port);
|
||||
}
|
||||
catch (ex) {
|
||||
console.error("couldn't track manager", ex);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
if (focus) {
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"manifest_version": 2,
|
||||
"name": "DownThemAll!",
|
||||
"version": "4.1.1",
|
||||
"version": "4.2.2",
|
||||
|
||||
"description": "__MSG_extensionDescription__",
|
||||
"homepage_url": "https://downthemall.org/",
|
||||
@ -33,6 +33,7 @@
|
||||
"sessions",
|
||||
"storage",
|
||||
"tabs",
|
||||
"theme",
|
||||
"webNavigation",
|
||||
"webRequest",
|
||||
"webRequestBlocking"
|
||||
|
24
package.json
@ -18,24 +18,24 @@
|
||||
"author": "Nils Maier",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@types/node": "^12.7.2",
|
||||
"@typescript-eslint/eslint-plugin": "^2.0.0",
|
||||
"@typescript-eslint/parser": "^2.0.0",
|
||||
"@types/node": "^12.7.8",
|
||||
"@typescript-eslint/eslint-plugin": "^2.3.2",
|
||||
"@typescript-eslint/parser": "^2.3.2",
|
||||
"chai": "^4.1.2",
|
||||
"eslint": "^6.2.2",
|
||||
"mocha": "^6.2.0",
|
||||
"ts-loader": "^6.0.4",
|
||||
"ts-node": "^8.3.0",
|
||||
"typescript": "^3.5.3",
|
||||
"webpack": "^4.39.3",
|
||||
"webpack-cli": "^3.3.7",
|
||||
"eslint": "^6.5.1",
|
||||
"mocha": "^6.2.1",
|
||||
"ts-loader": "^6.2.0",
|
||||
"ts-node": "^8.4.1",
|
||||
"typescript": "^3.6.3",
|
||||
"webpack": "^4.41.0",
|
||||
"webpack-cli": "^3.3.9",
|
||||
"xregexp": "^4.2.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"@types/psl": "^1.1.0",
|
||||
"@types/whatwg-mimetype": "^2.1.0",
|
||||
"psl": "^1.3.0",
|
||||
"webextension-polyfill": "^0.4.0",
|
||||
"psl": "^1.4.0",
|
||||
"webextension-polyfill": "^0.5.0",
|
||||
"whatwg-mimetype": "^2.3.0"
|
||||
}
|
||||
}
|
||||
|
@ -121,30 +121,43 @@ class Gatherer {
|
||||
|
||||
*collectImageInternal(img: HTMLImageElement) {
|
||||
try {
|
||||
const src = img.currentSrc || img.src;
|
||||
const item = this.makeItem(src, img);
|
||||
if (item) {
|
||||
item.fileName = "";
|
||||
item.description = item.title;
|
||||
yield item;
|
||||
}
|
||||
|
||||
const {srcset} = img;
|
||||
if (!srcset) {
|
||||
return;
|
||||
}
|
||||
const imgs = srcset.split(",").flatMap(e => {
|
||||
const idx = e.lastIndexOf(" ");
|
||||
return (idx > 0 ? e.slice(0, idx) : e).trim();
|
||||
});
|
||||
for (const i of imgs) {
|
||||
const item = this.makeItem(i, img);
|
||||
{
|
||||
const {src} = img;
|
||||
const item = this.makeItem(src, img);
|
||||
if (item) {
|
||||
item.fileName = "";
|
||||
item.description = item.title;
|
||||
yield item;
|
||||
}
|
||||
}
|
||||
{
|
||||
const {currentSrc} = img;
|
||||
const item = this.makeItem(currentSrc, img);
|
||||
if (item) {
|
||||
item.fileName = "";
|
||||
item.description = item.title;
|
||||
yield item;
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
const {srcset} = img;
|
||||
if (!srcset) {
|
||||
return;
|
||||
}
|
||||
const imgs = srcset.split(",").flatMap(e => {
|
||||
const idx = e.lastIndexOf(" ");
|
||||
return (idx > 0 ? e.slice(0, idx) : e).trim();
|
||||
});
|
||||
for (const i of imgs) {
|
||||
const item = this.makeItem(i, img);
|
||||
if (item) {
|
||||
item.fileName = "";
|
||||
item.description = item.title;
|
||||
yield item;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (ex) {
|
||||
console.error("oops image", ex.toString(), ex.stack, ex);
|
||||
|
408
style/common.css
@ -2,11 +2,25 @@
|
||||
/* License: gpl-v2 */
|
||||
|
||||
:root {
|
||||
--general-color: #2a2a2e;
|
||||
--general-bgcolor: rgb(249, 249, 250);
|
||||
--general-border-color: lightgray;
|
||||
--general-input-color: black;
|
||||
--general-input-bgcolor: white;
|
||||
--general-button-color: black;
|
||||
--general-button-bgcolor: rgb(246, 246, 246);
|
||||
--general-button-bgcolor-hover: white;
|
||||
--general-button-shadow: 0px 0px 5px 1px rgba(128, 128, 128, 0.5);
|
||||
--menu-bgcolor: white;
|
||||
--menu-bgcolor-hover: #2283fb;
|
||||
--table-bgcolor: white;
|
||||
--table-head-bgcolor: white;
|
||||
--toolbar-bg-color: rgb(248, 134, 6);
|
||||
--toolbar-active-border-color: #478de7;
|
||||
--toolbar-hover-border-color: red;
|
||||
--toolbar-hover-background: rgb(247, 149, 37);
|
||||
--toolbar-border-width: 2px;
|
||||
--toolbar-border: 1px solid rgba(255, 255, 255, 0.5);
|
||||
--add-color: navy;
|
||||
--queue-color: gray;
|
||||
--pause-color: #ffa318;
|
||||
@ -20,106 +34,273 @@
|
||||
--maskbutton-color: rgb(236, 185, 16);
|
||||
--missing-color: rgb(0, 82, 204);
|
||||
--open-color: rgba(236, 185, 16, 0.8);
|
||||
--status-icon-color: #363636;
|
||||
--status-icon-color-hover: #6e6d6d;
|
||||
--tile-url: url(tile.png);
|
||||
--file-icon-image-color: rgb(17, 107, 163);
|
||||
--popup-bgcolor: #fff;
|
||||
--popup-color: #0c0c0d;
|
||||
--modal-color: black;
|
||||
--modal-bgcolor: white;
|
||||
}
|
||||
|
||||
html.dark {
|
||||
--add-color: lightblue;
|
||||
--general-bgcolor: #2a2a2e;
|
||||
--general-border-color: rgb(85, 85, 85);
|
||||
--general-button-bgcolor-hover: black;
|
||||
--general-button-bgcolor: rgb(36, 36, 36);
|
||||
--general-button-color: white;
|
||||
--general-color: rgb(249, 249, 250);
|
||||
--menu-bgcolor: black;
|
||||
--menu-bgcolor-hover: #1a6bce;
|
||||
--table-bgcolor: #1a1a1e;
|
||||
--table-head-bgcolor: #3a3a3e;
|
||||
--toolbar-bg-color: rgb(202, 108, 0);
|
||||
--status-icon-color: #b9b9b9;
|
||||
--status-icon-color-hover: #e2e2e2;
|
||||
--tile-url: url(tile-dark.png?3);
|
||||
--toolbar-border: 1px solid rgba(30, 30, 30, 0.5);
|
||||
--file-icon-image-color: rgb(21, 130, 197);
|
||||
--popup-bgcolor: #4a4a4f;
|
||||
--popup-color: rgb(249, 249, 250);
|
||||
--general-button-shadow: 0px 0px 7px 1px rgba(128, 128, 128, 0.8);
|
||||
--modal-color: white;
|
||||
--modal-bgcolor: #333;
|
||||
scrollbar-color: rgba(249, 249, 250, 0.4) rgba(20, 20, 25, 0.3);
|
||||
}
|
||||
|
||||
html.dark a {
|
||||
color: lightblue;
|
||||
}
|
||||
|
||||
html.dark ::-webkit-scrollbar {
|
||||
background: rgba(20, 20, 25, 0.3);
|
||||
}
|
||||
|
||||
html.dark ::-webkit-scrollbar-thumb {
|
||||
background: rgba(249, 249, 250, 0.4);
|
||||
}
|
||||
|
||||
html.dark ::-webkit-scrollbar-corner {
|
||||
background: #000;
|
||||
}
|
||||
|
||||
html[data-platform="mac"] {
|
||||
--folder-color: rgb(4, 102, 214);
|
||||
}
|
||||
|
||||
html, body {
|
||||
html,
|
||||
body {
|
||||
font-size: 10pt !important;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'downthemall';
|
||||
src: url('downthemall.woff2?75791791') format('woff2');
|
||||
font-family: "downthemall";
|
||||
src: url("downthemall.woff2?75791791") format("woff2");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
[class^="icon-"]:before, [class*=" icon-"]:before {
|
||||
[class^="icon-"]:before,
|
||||
[class*=" icon-"]:before {
|
||||
font-family: "downthemall";
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
|
||||
|
||||
display: inline-block;
|
||||
text-decoration: inherit;
|
||||
width: 1em;
|
||||
text-align: center;
|
||||
|
||||
|
||||
font-variant: normal;
|
||||
text-transform: none;
|
||||
|
||||
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.icon-add:before { content: '\e800'; } /* '' */
|
||||
.icon-addsegment:before { content: '\e801'; } /* '' */
|
||||
.icon-bottom:before { content: '\e802'; } /* '' */
|
||||
.icon-picture:before { content: '\e803'; } /* '' */
|
||||
.icon-circle:before { content: '\e804'; } /* '' */
|
||||
.icon-delete:before { content: '\e805'; } /* '' */
|
||||
.icon-done:before { content: '\e806'; } /* '' */
|
||||
.icon-down:before { content: '\e807'; } /* '' */
|
||||
.icon-download:before { content: '\e808'; } /* '' */
|
||||
.icon-dupe:before { content: '\e809'; } /* '' */
|
||||
.icon-error:before { content: '\e80a'; } /* '' */
|
||||
.icon-failed:before { content: '\e80b'; } /* '' */
|
||||
.icon-file:before { content: '\e80c'; } /* '' */
|
||||
.icon-find:before { content: '\e80d'; } /* '' */
|
||||
.icon-folder:before { content: '\e80e'; } /* '' */
|
||||
.icon-force:before { content: '\e80f'; } /* '' */
|
||||
.icon-go:before { content: '\e810'; } /* '' */
|
||||
.icon-import:before { content: '\e811'; } /* '' */
|
||||
.icon-info:before { content: '\e812'; } /* '' */
|
||||
.icon-launch:before { content: '\e813'; } /* '' */
|
||||
.icon-missing:before { content: '\e814'; } /* '' */
|
||||
.icon-network-off:before { content: '\e815'; } /* '' */
|
||||
.icon-network-on:before { content: '\e816'; } /* '' */
|
||||
.icon-pause:before { content: '\e817'; } /* '' */
|
||||
.icon-remsegment:before { content: '\e818'; } /* '' */
|
||||
.icon-rename:before { content: '\e819'; } /* '' */
|
||||
.icon-save:before { content: '\e81a'; } /* '' */
|
||||
.icon-settings:before { content: '\e81b'; } /* '' */
|
||||
.icon-top:before { content: '\e81c'; } /* '' */
|
||||
.icon-unchecked:before { content: '\e81d'; } /* '' */
|
||||
.icon-unlimited:before { content: '\e81e'; } /* '' */
|
||||
.icon-link:before { content: '\e81f'; } /* '' */
|
||||
.icon-up:before { content: '\e820'; } /* '' */
|
||||
.icon-privacy:before { content: '\e821'; } /* '' */
|
||||
.icon-tags:before { content: '\e822'; } /* '' */
|
||||
.icon-attention:before { content: '\e823'; } /* '' */
|
||||
.icon-notification:before { content: '\e824'; } /* '' */
|
||||
.icon-file-video:before { content: '\e825'; } /* '' */
|
||||
.icon-file-generic:before { content: '\e826'; } /* '' */
|
||||
.icon-question-dark:before { content: '\e827'; } /* '' */
|
||||
.icon-forward:before { content: '\e828'; } /* '' */
|
||||
.icon-filter:before { content: '\f0b0'; } /* '' */
|
||||
.icon-donate:before { content: '\f0d6'; } /* '' */
|
||||
.icon-file-doc:before { content: '\f0f6'; } /* '' */
|
||||
.icon-interface:before { content: '\f108'; } /* '' */
|
||||
.icon-folder-1:before { content: '\f115'; } /* '' */
|
||||
.icon-sort-asc:before { content: '\f15d'; } /* '' */
|
||||
.icon-sort-desc:before { content: '\f15e'; } /* '' */
|
||||
.icon-file-pdf:before { content: '\f1c1'; } /* '' */
|
||||
.icon-file-word:before { content: '\f1c2'; } /* '' */
|
||||
.icon-file-image:before { content: '\f1c5'; } /* '' */
|
||||
.icon-file-archive:before { content: '\f1c6'; } /* '' */
|
||||
.icon-file-audio:before { content: '\f1c7'; } /* '' */
|
||||
.icon-toggle-off:before { content: '\f204'; } /* '' */
|
||||
.icon-toggle-on:before { content: '\f205'; } /* '' */
|
||||
.icon-server:before { content: '\f233'; } /* '' */
|
||||
.icon-question-light:before { content: '\f29c'; } /* '' */
|
||||
|
||||
.icon-add:before {
|
||||
content: "\e800";
|
||||
} /* '' */
|
||||
.icon-addsegment:before {
|
||||
content: "\e801";
|
||||
} /* '' */
|
||||
.icon-bottom:before {
|
||||
content: "\e802";
|
||||
} /* '' */
|
||||
.icon-picture:before {
|
||||
content: "\e803";
|
||||
} /* '' */
|
||||
.icon-circle:before {
|
||||
content: "\e804";
|
||||
} /* '' */
|
||||
.icon-delete:before {
|
||||
content: "\e805";
|
||||
} /* '' */
|
||||
.icon-done:before {
|
||||
content: "\e806";
|
||||
} /* '' */
|
||||
.icon-down:before {
|
||||
content: "\e807";
|
||||
} /* '' */
|
||||
.icon-download:before {
|
||||
content: "\e808";
|
||||
} /* '' */
|
||||
.icon-dupe:before {
|
||||
content: "\e809";
|
||||
} /* '' */
|
||||
.icon-error:before {
|
||||
content: "\e80a";
|
||||
} /* '' */
|
||||
.icon-failed:before {
|
||||
content: "\e80b";
|
||||
} /* '' */
|
||||
.icon-file:before {
|
||||
content: "\e80c";
|
||||
} /* '' */
|
||||
.icon-find:before {
|
||||
content: "\e80d";
|
||||
} /* '' */
|
||||
.icon-folder:before {
|
||||
content: "\e80e";
|
||||
} /* '' */
|
||||
.icon-force:before {
|
||||
content: "\e80f";
|
||||
} /* '' */
|
||||
.icon-go:before {
|
||||
content: "\e810";
|
||||
} /* '' */
|
||||
.icon-import:before {
|
||||
content: "\e811";
|
||||
} /* '' */
|
||||
.icon-info:before {
|
||||
content: "\e812";
|
||||
} /* '' */
|
||||
.icon-launch:before {
|
||||
content: "\e813";
|
||||
} /* '' */
|
||||
.icon-missing:before {
|
||||
content: "\e814";
|
||||
} /* '' */
|
||||
.icon-network-off:before {
|
||||
content: "\e815";
|
||||
} /* '' */
|
||||
.icon-network-on:before {
|
||||
content: "\e816";
|
||||
} /* '' */
|
||||
.icon-pause:before {
|
||||
content: "\e817";
|
||||
} /* '' */
|
||||
.icon-remsegment:before {
|
||||
content: "\e818";
|
||||
} /* '' */
|
||||
.icon-rename:before {
|
||||
content: "\e819";
|
||||
} /* '' */
|
||||
.icon-save:before {
|
||||
content: "\e81a";
|
||||
} /* '' */
|
||||
.icon-settings:before {
|
||||
content: "\e81b";
|
||||
} /* '' */
|
||||
.icon-top:before {
|
||||
content: "\e81c";
|
||||
} /* '' */
|
||||
.icon-unchecked:before {
|
||||
content: "\e81d";
|
||||
} /* '' */
|
||||
.icon-unlimited:before {
|
||||
content: "\e81e";
|
||||
} /* '' */
|
||||
.icon-link:before {
|
||||
content: "\e81f";
|
||||
} /* '' */
|
||||
.icon-up:before {
|
||||
content: "\e820";
|
||||
} /* '' */
|
||||
.icon-privacy:before {
|
||||
content: "\e821";
|
||||
} /* '' */
|
||||
.icon-tags:before {
|
||||
content: "\e822";
|
||||
} /* '' */
|
||||
.icon-attention:before {
|
||||
content: "\e823";
|
||||
} /* '' */
|
||||
.icon-notification:before {
|
||||
content: "\e824";
|
||||
} /* '' */
|
||||
.icon-file-video:before {
|
||||
content: "\e825";
|
||||
} /* '' */
|
||||
.icon-file-generic:before {
|
||||
content: "\e826";
|
||||
} /* '' */
|
||||
.icon-question-dark:before {
|
||||
content: "\e827";
|
||||
} /* '' */
|
||||
.icon-forward:before {
|
||||
content: "\e828";
|
||||
} /* '' */
|
||||
.icon-filter:before {
|
||||
content: "\f0b0";
|
||||
} /* '' */
|
||||
.icon-donate:before {
|
||||
content: "\f0d6";
|
||||
} /* '' */
|
||||
.icon-file-doc:before {
|
||||
content: "\f0f6";
|
||||
} /* '' */
|
||||
.icon-interface:before {
|
||||
content: "\f108";
|
||||
} /* '' */
|
||||
.icon-folder-1:before {
|
||||
content: "\f115";
|
||||
} /* '' */
|
||||
.icon-sort-asc:before {
|
||||
content: "\f15d";
|
||||
} /* '' */
|
||||
.icon-sort-desc:before {
|
||||
content: "\f15e";
|
||||
} /* '' */
|
||||
.icon-file-pdf:before {
|
||||
content: "\f1c1";
|
||||
} /* '' */
|
||||
.icon-file-word:before {
|
||||
content: "\f1c2";
|
||||
} /* '' */
|
||||
.icon-file-image:before {
|
||||
content: "\f1c5";
|
||||
} /* '' */
|
||||
.icon-file-archive:before {
|
||||
content: "\f1c6";
|
||||
} /* '' */
|
||||
.icon-file-audio:before {
|
||||
content: "\f1c7";
|
||||
} /* '' */
|
||||
.icon-toggle-off:before {
|
||||
content: "\f204";
|
||||
} /* '' */
|
||||
.icon-toggle-on:before {
|
||||
content: "\f205";
|
||||
} /* '' */
|
||||
.icon-server:before {
|
||||
content: "\f233";
|
||||
} /* '' */
|
||||
.icon-question-light:before {
|
||||
content: "\f29c";
|
||||
} /* '' */
|
||||
|
||||
@media (min-resolution: 144dpi) {
|
||||
[class^="icon-file-"]:before, [class*=" icon-file-"]:before {
|
||||
[class^="icon-file-"]:before,
|
||||
[class*=" icon-file-"]:before {
|
||||
font-weight: bold !important;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-file-image {
|
||||
color: rgb(17, 107, 163);
|
||||
color: var(--file-icon-image-color);
|
||||
}
|
||||
|
||||
.icon-file-pdf,
|
||||
@ -140,18 +321,29 @@ html, body {
|
||||
color: rgb(202, 81, 198);
|
||||
}
|
||||
|
||||
body, html {
|
||||
background: #F6F6F8;
|
||||
color: #0C0C0D;
|
||||
body,
|
||||
html {
|
||||
font: message-box;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Ubuntu', 'Helvetica Neue', sans-serif;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Ubuntu",
|
||||
"Helvetica Neue", sans-serif;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
color: var(--general-color);
|
||||
background: var(--general-bgcolor);
|
||||
}
|
||||
|
||||
h1, h2, h3, h4 {
|
||||
html#popup,
|
||||
html#popup > body {
|
||||
color: var(--popup-color);
|
||||
background: var(--popup-bgcolor);
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4 {
|
||||
font: caption;
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -191,7 +383,11 @@ section {
|
||||
}
|
||||
|
||||
.virtualtable-column:active {
|
||||
background-image: linear-gradient(to top, rgba(0,0,0,0.03), rgba(128,128,128,0.1));
|
||||
background-image: linear-gradient(
|
||||
to top,
|
||||
rgba(0, 0, 0, 0.03),
|
||||
rgba(128, 128, 128, 0.1)
|
||||
);
|
||||
}
|
||||
|
||||
th.virtualtable {
|
||||
@ -218,8 +414,12 @@ td.virtualtable {
|
||||
font-size: 12px;
|
||||
align-items: stretch;
|
||||
justify-items: center;
|
||||
background: linear-gradient(to bottom, rgba(128,128,128,0.1) 0%,rgba(0,0,0,0) 100%);
|
||||
border-top: 1px solid rgba(128,128,128,0.6);
|
||||
background: linear-gradient(
|
||||
to bottom,
|
||||
rgba(128, 128, 128, 0.1) 0%,
|
||||
rgba(0, 0, 0, 0) 100%
|
||||
);
|
||||
border-top: 1px solid rgba(128, 128, 128, 0.6);
|
||||
display: flex;
|
||||
margin-bottom: 1ex;
|
||||
overflow: auto;
|
||||
@ -246,15 +446,15 @@ td.virtualtable {
|
||||
flex-grow: 3;
|
||||
margin-right: 2ex;
|
||||
padding-right: 1ex;
|
||||
border-right: 1px dotted rgba(128,128,128,0.6);
|
||||
border-right: 1px dotted rgba(128, 128, 128, 0.6);
|
||||
}
|
||||
|
||||
#statusPrefs {
|
||||
cursor: pointer;
|
||||
color: #363636;
|
||||
color: var(--status-icon-color);
|
||||
}
|
||||
#statusPrefs:hover {
|
||||
color: #6e6d6d;
|
||||
color: var(--status-icon-color-hover);
|
||||
}
|
||||
|
||||
.dropdown {
|
||||
@ -272,13 +472,14 @@ td.virtualtable {
|
||||
outline: none;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width:100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.dropdown input {
|
||||
-moz-appearance: none;
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
color: black;
|
||||
background: white;
|
||||
border: none;
|
||||
bottom: 2px;
|
||||
@ -301,7 +502,6 @@ td.virtualtable {
|
||||
padding-bottom: 1ex;
|
||||
}
|
||||
|
||||
|
||||
@supports (not (-moz-appearance: none)) {
|
||||
.dropdown select {
|
||||
background: white;
|
||||
@ -370,4 +570,50 @@ td.virtualtable {
|
||||
|
||||
#maskButton {
|
||||
color: var(--maskbutton-color);
|
||||
}
|
||||
}
|
||||
|
||||
table.virtualtable,
|
||||
.virtualtable-body {
|
||||
color: var(--general-color);
|
||||
background: var(--table-bgcolor);
|
||||
}
|
||||
.virtualtable-head,
|
||||
.virtualtable-head > table {
|
||||
background: var(--table-head-bgcolor) !important;
|
||||
}
|
||||
|
||||
.virtualtable-column {
|
||||
border-right: 1px solid var(--general-border-color);
|
||||
}
|
||||
|
||||
.virtualtable-cell {
|
||||
border-right: 1px dotted var(--general-border-color);
|
||||
}
|
||||
|
||||
.virtualtable-head,
|
||||
.virtualtable-body {
|
||||
border-bottom: 1px solid var(--general-border-color);
|
||||
}
|
||||
|
||||
ul.context-menu,
|
||||
ul.context-menu ul {
|
||||
color: var(--general-color);
|
||||
background: var(--menu-bgcolor);
|
||||
}
|
||||
|
||||
.context-menu-item:hover:not(.context-menu-seperator),
|
||||
.context-menu-item:hover:not(.context-menu-seperator) > * {
|
||||
background: var(--menu-bgcolor-hover);
|
||||
}
|
||||
|
||||
input {
|
||||
color: var(--general-input-color);
|
||||
background: var(--general-input-bgcolor);
|
||||
border: inherit;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
.modal-dialog {
|
||||
color: var(--modal-color);
|
||||
background: var(--modal-bgcolor);
|
||||
}
|
||||
|
@ -16,7 +16,7 @@ body > * {
|
||||
#toolbar {
|
||||
display: flex;
|
||||
margin: 0;
|
||||
background: var(--toolbar-bg-color) url(tile.png) repeat-x;
|
||||
background: var(--toolbar-bg-color) var(--tile-url) repeat-x;
|
||||
}
|
||||
|
||||
#toolbar .spacer {
|
||||
@ -42,9 +42,9 @@ body > * {
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
box-shadow: 0px 0px 5px 1px rgba(128,128,128,0.5);
|
||||
background: rgb(246,246,246);
|
||||
color: black;
|
||||
box-shadow: var(--general-button-shadow);
|
||||
background: var(--general-button-bgcolor);
|
||||
color: var(--general-button-color);
|
||||
transition: box-shadow 0.5s, background 1s;
|
||||
font-size: 24px;
|
||||
line-height: 24px;
|
||||
@ -60,7 +60,7 @@ body > * {
|
||||
}
|
||||
|
||||
#toolbar > .button:hover:not(.disabled) {
|
||||
background: white;
|
||||
background: var(--general-button-bgcolor-hover);
|
||||
box-shadow: 0px 0px 7px 2px rgba(70,70,70,0.75);
|
||||
}
|
||||
|
||||
@ -88,14 +88,14 @@ body > * {
|
||||
flex: 1 1 auto;
|
||||
overflow: hidden;
|
||||
display: grid;
|
||||
background: white;
|
||||
background: var(--general-bgcolor);
|
||||
}
|
||||
|
||||
#loading {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
background: rgba(255,255,255,0.9);
|
||||
background: var(--general-button-bgcolor);
|
||||
font-weight: bolder;
|
||||
font-size: 200%;
|
||||
z-index: 10;
|
||||
@ -311,7 +311,7 @@ body > * {
|
||||
color: crimson;
|
||||
}
|
||||
#statusNetwork.icon-network-on {
|
||||
color: navy;
|
||||
color: var(--add-color);
|
||||
}
|
||||
|
||||
#statusFilter {
|
||||
@ -344,6 +344,7 @@ body > * {
|
||||
height: 16px;
|
||||
-moz-appearance: none;
|
||||
border: 0;
|
||||
outline: 0;
|
||||
background: transparent;
|
||||
width: calc(100% - 28px);
|
||||
}
|
||||
@ -403,7 +404,7 @@ body > * {
|
||||
font-size: 10pt !important;
|
||||
}
|
||||
#nagging {
|
||||
border-top: 1px solid lightgray;
|
||||
border-top: 1px solid var(--general-border-color);
|
||||
display: grid;
|
||||
grid-template-columns: 1fr auto auto auto;
|
||||
align-content: center;
|
||||
|
@ -1,8 +1,8 @@
|
||||
/* License: gpl-v2 */
|
||||
@import 'common.css';
|
||||
@import "common.css";
|
||||
|
||||
html, body {
|
||||
background: transparent !important;
|
||||
html,
|
||||
body {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
@ -19,9 +19,10 @@ article {
|
||||
|
||||
#tabs {
|
||||
display: flex;
|
||||
background: url(icon64.png) 1em 50%/32px 32px no-repeat, url(tile.png) repeat-x, var(--toolbar-bg-color);
|
||||
background: url(icon64.png) 1em 50%/32px 32px no-repeat,
|
||||
var(--tile-url) repeat-x, var(--toolbar-bg-color);
|
||||
padding-left: calc(2em + 32px);
|
||||
color: white;
|
||||
color: var(--general-bgcolor);
|
||||
}
|
||||
|
||||
input.tab {
|
||||
@ -54,9 +55,10 @@ input.tab {
|
||||
#tabsel-general:checked ~ #tabs #tabel-general,
|
||||
#tabsel-filters:checked ~ #tabs #tabel-filters,
|
||||
#tabsel-network:checked ~ #tabs #tabel-network {
|
||||
color: black !important;
|
||||
background: white;
|
||||
border-top: var(--toolbar-border-width) solid var(--toolbar-active-border-color);
|
||||
color: var(--general-color) !important;
|
||||
background: var(--general-bgcolor);
|
||||
border-top: var(--toolbar-border-width) solid
|
||||
var(--toolbar-active-border-color);
|
||||
}
|
||||
|
||||
#tabs > label {
|
||||
@ -64,13 +66,14 @@ input.tab {
|
||||
border-top: var(--toolbar-border-width) solid transparent;
|
||||
border-left: 1px solid transparent;
|
||||
border-right: 1px solid transparent;
|
||||
border-left: 1px solid rgba(255, 255, 255, 0.5);
|
||||
border-right: 1px solid rgba(255, 255, 255, 0.5);
|
||||
border-left: var(--toolbar-border);
|
||||
border-right: var(--toolbar-border);
|
||||
background: var(--toolbar-bg-color);
|
||||
}
|
||||
|
||||
#tabs > label:hover:not(:checked) {
|
||||
border-top: var(--toolbar-border-width) solid var(--toolbar-hover-border-color);
|
||||
border-top: var(--toolbar-border-width) solid
|
||||
var(--toolbar-hover-border-color);
|
||||
background: var(--toolbar-hover-background);
|
||||
}
|
||||
|
||||
@ -102,7 +105,7 @@ input.tab {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.buttons > button{
|
||||
.buttons > button {
|
||||
margin: 0 2em;
|
||||
}
|
||||
|
||||
@ -113,15 +116,27 @@ input.tab {
|
||||
fieldset {
|
||||
display: flex;
|
||||
margin-bottom: 1em;
|
||||
border: 1px solid lightgray;
|
||||
border: 1px solid var(--general-border-color);
|
||||
border-radius: 6px;
|
||||
box-shadow: 1px 1px 6px lightgray;
|
||||
box-shadow: 1px 1px 6px var(--general-border-color);
|
||||
background: rgba(128, 128, 128, 0.05);
|
||||
flex-direction: column;
|
||||
max-width: 60em;
|
||||
padding: 1.2em;
|
||||
}
|
||||
|
||||
.optiongroups,
|
||||
fieldset > label {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
fieldset > label > input,
|
||||
fieldset > label > select {
|
||||
margin-left: 1ex;
|
||||
margin-right: 1ex;
|
||||
}
|
||||
|
||||
legend {
|
||||
font-weight: bold;
|
||||
font-size: 120%;
|
||||
@ -134,10 +149,10 @@ legend {
|
||||
}
|
||||
|
||||
.virtualtable-container {
|
||||
border: 1px solid lightgray;
|
||||
border: 1px solid var(--general-border-color);
|
||||
border-radius: 6px;
|
||||
background: rgba(128, 128, 128, 0.05);
|
||||
box-shadow: 1px 1px 6px lightgray;
|
||||
box-shadow: 1px 1px 6px var(--general-border-color);
|
||||
}
|
||||
|
||||
#network-general {
|
||||
@ -145,4 +160,25 @@ legend {
|
||||
grid-template-columns: auto 1fr;
|
||||
grid-column-gap: 1em;
|
||||
grid-row-gap: 1ex;
|
||||
}
|
||||
}
|
||||
|
||||
.optiongroups {
|
||||
display: grid;
|
||||
grid-template-columns: auto 1fr;
|
||||
grid-column-gap: 1em;
|
||||
grid-row-gap: 1ex;
|
||||
}
|
||||
|
||||
.optiongroups > div,
|
||||
.optiongroups > div > label {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.optiongroups input {
|
||||
margin-left: 1em;
|
||||
margin-right: 0.7ex;
|
||||
}
|
||||
|
||||
hr {
|
||||
width: 100%;
|
||||
}
|
||||
|
@ -107,7 +107,7 @@ body > * {
|
||||
padding: 0;
|
||||
padding-left: calc(2em + 32px);
|
||||
color: black;
|
||||
background: url(icon32.png) 1em 0/32px 32px no-repeat, url(tile.png) repeat-x, var(--toolbar-bg-color);
|
||||
background: url(icon32.png) 1em 0/32px 32px no-repeat, var(--tile-url) repeat-x, var(--toolbar-bg-color);
|
||||
font: caption;
|
||||
font-size: 150%;
|
||||
font-weight: bold;
|
||||
@ -117,7 +117,7 @@ body > * {
|
||||
}
|
||||
@media (-webkit-min-device-pixel-ratio: 1.3), (min-resolution: 124.8dpi) {
|
||||
#tabs {
|
||||
background: url(icon64.png) 1em 50%/32px 32px no-repeat, url(tile.png) repeat-x, var(--toolbar-bg-color);
|
||||
background: url(icon64.png) 1em 50%/32px 32px no-repeat, var(--tile-url) repeat-x, var(--toolbar-bg-color);
|
||||
}
|
||||
}
|
||||
|
||||
@ -145,27 +145,27 @@ body > * {
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
background: var(--toolbar-bg-color);
|
||||
color: white;
|
||||
color: var(--general-color);
|
||||
min-width: 10em;
|
||||
padding: 1ex;
|
||||
padding-left: 1em;
|
||||
cursor: pointer;
|
||||
border: 0;
|
||||
border-top: var(--toolbar-border-width) solid transparent;
|
||||
border-left: 1px solid rgba(255,255,255,0.3);
|
||||
border-right: 1px solid rgba(255,255,255,0.3);
|
||||
border-left: var(--toolbar-border);
|
||||
border-right: var(--toolbar-border);
|
||||
transition: border 1s;
|
||||
}
|
||||
|
||||
.tab:not(.active):not(.disabled):hover {
|
||||
border-top: var(--toolbar-border-width) solid var(--toolbar-hover-border-color);
|
||||
color: rgb(255, 226, 167);
|
||||
color: var(--general-color);
|
||||
background: var(--toolbar-hover-background);
|
||||
}
|
||||
|
||||
.tab.active {
|
||||
color: black;
|
||||
background: white;
|
||||
color: var(--general-color);
|
||||
background: var(--table-head-bgcolor);
|
||||
border-top: var(--toolbar-border-width) solid var(--toolbar-active-border-color);
|
||||
border-left: 1px solid transparent;
|
||||
border-right: 1px solid transparent;
|
||||
|
BIN
style/tile-dark.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
style/tile.png
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.3 KiB |
10
tests/.editorconfig
Normal file
@ -0,0 +1,10 @@
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
indent_size = 2
|
||||
indent_style = space
|
||||
insert_final_newline = true
|
||||
tab_width = 2
|
||||
trim_trailing_whitespace = true
|
@ -113,4 +113,29 @@ describe("BatchGenerator", function() {
|
||||
expect(items[0]).to.equal(gen.preview);
|
||||
expect(gen.hasInvalid).to.be.true;
|
||||
});
|
||||
|
||||
it("characters", function() {
|
||||
const gen = new BatchGenerator("abc[a:c].lol[1].b");
|
||||
const items = Array.from(gen);
|
||||
expect(items).to.deep.equal([
|
||||
"abca.lol[1].b",
|
||||
"abcb.lol[1].b",
|
||||
"abcc.lol[1].b",
|
||||
]);
|
||||
expect(items.length).to.equal(gen.length);
|
||||
expect(items[0]).to.equal(gen.preview);
|
||||
});
|
||||
|
||||
it("characters two", function() {
|
||||
const gen = new BatchGenerator("abc[D:G].lol[1].b");
|
||||
const items = Array.from(gen);
|
||||
expect(items).to.deep.equal([
|
||||
"abcD.lol[1].b",
|
||||
"abcE.lol[1].b",
|
||||
"abcF.lol[1].b",
|
||||
"abcG.lol[1].b",
|
||||
]);
|
||||
expect(items.length).to.equal(gen.length);
|
||||
expect(items[0]).to.equal(gen.preview);
|
||||
});
|
||||
});
|
||||
|
43
tests/test_urld.js
Normal file
@ -0,0 +1,43 @@
|
||||
/* eslint-env node */
|
||||
/* eslint-disable @typescript-eslint/no-var-requires */
|
||||
"use strict";
|
||||
// License: CC0 1.0
|
||||
|
||||
require("../lib/util");
|
||||
|
||||
describe("URLd", function() {
|
||||
it("basic domain", function() {
|
||||
let u = new URL("https://www.google.de");
|
||||
expect(u.domain).to.equal("google.de");
|
||||
u = new URL("https://www.google.de:8443");
|
||||
expect(u.domain).to.equal("google.de");
|
||||
});
|
||||
|
||||
it("plain basic domain", function() {
|
||||
const u = new URL("https://google.de");
|
||||
expect(u.domain).to.equal("google.de");
|
||||
});
|
||||
|
||||
it("special domain", function() {
|
||||
let u = new URL("https://www.google.co.uk");
|
||||
expect(u.domain).to.equal("google.co.uk");
|
||||
u = new URL("https://google.co.uk");
|
||||
expect(u.domain).to.equal("google.co.uk");
|
||||
u = new URL("https://www.google.co.uk:8443");
|
||||
expect(u.domain).to.equal("google.co.uk");
|
||||
});
|
||||
|
||||
it("ipv4", function() {
|
||||
let u = new URL("https://127.0.0.1:8443");
|
||||
expect(u.domain).to.equal("127.0.0.1");
|
||||
u = new URL("https://0.0.0.0:8443");
|
||||
expect(u.domain).to.equal("0.0.0.0");
|
||||
});
|
||||
|
||||
it("ipv6", function() {
|
||||
let u = new URL("https://[::1]:8443");
|
||||
expect(u.domain).to.equal("[::1]");
|
||||
u = new URL("https://[2a00:1450:4005:800::2003]:8443");
|
||||
expect(u.domain).to.equal("[2a00:1450:4005:800::2003]");
|
||||
});
|
||||
});
|
@ -104,7 +104,7 @@ export class EventEmitter {
|
||||
for (const e of Array.from(handlers)) {
|
||||
try {
|
||||
// eslint-disable-next-line prefer-spread
|
||||
handled = handled || !!e.apply(null, args);
|
||||
handled = !!e.apply(null, args) || handled;
|
||||
}
|
||||
catch (ex) {
|
||||
console.error(`Event handler ${e} for ${event} failed`, ex.toString(), ex.stack, ex);
|
||||
|
@ -27,7 +27,7 @@ LICENSED = set((".css", ".html", ".js", "*.ts"))
|
||||
IGNORED = set((".DS_Store", "Thumbs.db"))
|
||||
|
||||
PERM_IGNORED_FX = set(("downloads.shelf", "webRequest", "webRequestBlocking"))
|
||||
PERM_IGNORED_CHROME = set(("menus", "sessions"))
|
||||
PERM_IGNORED_CHROME = set(("menus", "sessions", "theme"))
|
||||
|
||||
SCRIPTS = [
|
||||
"yarn build:regexps",
|
||||
|
@ -8,6 +8,8 @@ import PORT from "./manager/port";
|
||||
import { runtime } from "../lib/browser";
|
||||
import { Promised } from "../lib/util";
|
||||
import { PromiseSerializer } from "../lib/pserializer";
|
||||
import { Keys } from "./keys";
|
||||
import "./theme";
|
||||
|
||||
const $ = document.querySelector.bind(document);
|
||||
|
||||
@ -120,6 +122,11 @@ addEventListener("DOMContentLoaded", function dom() {
|
||||
statusNetwork.setAttribute("title", _("statusNetwork-inactive.title"));
|
||||
}
|
||||
});
|
||||
|
||||
Keys.on("ACCEL-KeyF", () => {
|
||||
$("#filter").focus();
|
||||
return true;
|
||||
});
|
||||
});
|
||||
|
||||
addEventListener("contextmenu", event => {
|
||||
|
@ -4,6 +4,7 @@
|
||||
import { EventEmitter } from "../../lib/events";
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
import { runtime, RawPort } from "../../lib/browser";
|
||||
import { WindowState } from "../windowstate";
|
||||
|
||||
const PORT = new class Port extends EventEmitter {
|
||||
port: RawPort | null;
|
||||
@ -14,6 +15,17 @@ const PORT = new class Port extends EventEmitter {
|
||||
if (!this.port) {
|
||||
throw new Error("Could not connect");
|
||||
}
|
||||
new WindowState(this.port);
|
||||
addEventListener("beforeunload", () => {
|
||||
if (this.port) {
|
||||
this.port.postMessage({
|
||||
msg: "unload",
|
||||
left: window.screenX,
|
||||
top: window.screenY
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
this.port.onMessage.addListener((msg: any) => {
|
||||
if (typeof msg === "string") {
|
||||
this.emit(msg);
|
||||
|
@ -122,6 +122,8 @@ export class DownloadItem extends EventEmitter {
|
||||
|
||||
public currentName: string;
|
||||
|
||||
public currentFull: string;
|
||||
|
||||
public ext?: string;
|
||||
|
||||
public position: number;
|
||||
|
@ -182,7 +182,7 @@ export class Tooltip {
|
||||
}
|
||||
const icon = item.largeIcon;
|
||||
this.icon.className = icon;
|
||||
this.name.textContent = item.destFull;
|
||||
this.name.textContent = item.currentFull;
|
||||
this.from.textContent = item.usable;
|
||||
this.size.textContent = item.fmtSize;
|
||||
this.date.textContent = new Date(item.startDate).toLocaleString();
|
||||
|
@ -1,4 +1,6 @@
|
||||
<!doctype html>
|
||||
<html id="popup">
|
||||
|
||||
<head>
|
||||
<!-- License: GPL-v2 -->
|
||||
<meta charset="utf-8">
|
||||
@ -11,6 +13,8 @@
|
||||
height: auto !important;
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
ul {
|
||||
@ -105,4 +109,6 @@
|
||||
<span data-i18n="prefs.short">Preferences</span>
|
||||
</li>
|
||||
</ul>
|
||||
</body>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -2,6 +2,7 @@
|
||||
// License: MIT
|
||||
|
||||
import { localize } from "../lib/i18n";
|
||||
import "./theme";
|
||||
|
||||
declare let browser: any;
|
||||
declare let chrome: any;
|
||||
|
@ -43,13 +43,21 @@
|
||||
<article id="tab-general" class="tab">
|
||||
<fieldset>
|
||||
<legend data-i18n="pref.ui">UI</legend>
|
||||
<div id="pref-button-type">
|
||||
<div class="optiongroups">
|
||||
<label data-i18n="pref-button-type"></label>
|
||||
<label><input type="radio" name="pref-button-type" value="popup"> <span data-i18n="pref-button-type-popup"></span></label>
|
||||
<label><input type="radio" name="pref-button-type" value="dta"> <span data-i18n="pref-button-type-dta"></span></label>
|
||||
<label><input type="radio" name="pref-button-type" value="turbo"> <span data-i18n="pref-button-type-turbo"></span></label>
|
||||
<label><input type="radio" name="pref-button-type" value="manager"> <span data-i18n="pref-button-type-manager"></span></label>
|
||||
</div>
|
||||
<div id="pref-button-type">
|
||||
<label><input type="radio" name="pref-button-type" value="popup"> <span data-i18n="pref-button-type-popup"></span></label>
|
||||
<label><input type="radio" name="pref-button-type" value="dta"> <span data-i18n="pref-button-type-dta"></span></label>
|
||||
<label><input type="radio" name="pref-button-type" value="turbo"> <span data-i18n="pref-button-type-turbo"></span></label>
|
||||
<label><input type="radio" name="pref-button-type" value="manager"> <span data-i18n="pref-button-type-manager"></span></label>
|
||||
</div>
|
||||
<label data-i18n="pref-theme"></label>
|
||||
<div id="pref-theme">
|
||||
<label><input type="radio" name="pref-theme" value="default"> <span data-i18n="pref-theme-default"></span></label>
|
||||
<label><input type="radio" name="pref-theme" value="light"> <span data-i18n="pref-theme-light"></span></label>
|
||||
<label><input type="radio" name="pref-theme" value="dark"> <span data-i18n="pref-theme-dark"></span></label>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<label><input type="checkbox" id="pref-manager-in-popup"> <span data-i18n="pref-manager-in-popup"></span></label>
|
||||
<label><input type="checkbox" id="pref-finish-notification"> <span data-i18n="pref-finish-notification"></span></label>
|
||||
@ -81,7 +89,8 @@
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>Translations</legend>
|
||||
<label>Language:
|
||||
<label>
|
||||
<span>Language:</span>
|
||||
<select id="languages">
|
||||
<option value="default">Browser default</option>
|
||||
</select>
|
||||
@ -123,14 +132,16 @@
|
||||
</article>
|
||||
|
||||
<article id="tab-network" class="tab">
|
||||
<fieldset id="network-general">
|
||||
<fieldset>
|
||||
<legend data-i18n="pref.netglobal"></legend>
|
||||
<label data-i18n="pref-concurrent-downloads">Concurrent downloads</label>
|
||||
<input id="pref-concurrent-downloads" type="number" min="1" max="10">
|
||||
<label data-i18n="pref-retries"></label>
|
||||
<input id="pref-retries" type="number" min="0" max="100">
|
||||
<label data-i18n="pref-retry-time"></label>
|
||||
<input id="pref-retry-time" type="number" min="1" max="600">
|
||||
<div id="network-general">
|
||||
<label data-i18n="pref-concurrent-downloads">Concurrent downloads</label>
|
||||
<input id="pref-concurrent-downloads" type="number" min="1" max="10">
|
||||
<label data-i18n="pref-retries"></label>
|
||||
<input id="pref-retries" type="number" min="0" max="100">
|
||||
<label data-i18n="pref-retry-time"></label>
|
||||
<input id="pref-retry-time" type="number" min="1" max="600">
|
||||
</div>
|
||||
</fieldset>
|
||||
<table id="limits" data-singleselect="true">
|
||||
<tr>
|
||||
|
@ -20,6 +20,7 @@ import { VirtualTable } from "../uikit/lib/table";
|
||||
import { Icons } from "./icons";
|
||||
import { $ } from "./winutil";
|
||||
import { runtime, storage } from "../lib/browser";
|
||||
import "./theme";
|
||||
|
||||
const ICON_BASE_SIZE = 16;
|
||||
|
||||
@ -566,6 +567,7 @@ addEventListener("DOMContentLoaded", async () => {
|
||||
new BoolPref("pref-show-urls", "show-urls");
|
||||
new BoolPref("pref-remove-missing-on-init", "remove-missing-on-init");
|
||||
new OptionPref("pref-button-type", "button-type");
|
||||
new OptionPref("pref-theme", "theme");
|
||||
new OptionPref("pref-conflict-action", "conflict-action");
|
||||
|
||||
$("#reset-confirmations").addEventListener("click", async () => {
|
||||
|
@ -25,6 +25,7 @@ import { ItemDelta } from "../lib/select";
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
import { TableConfig } from "../uikit/lib/config";
|
||||
import { validateSubFolder as validateSubfolder } from "../lib/util";
|
||||
import "./theme";
|
||||
|
||||
const PORT: RawPort = runtime.connect(null, { name: "select" });
|
||||
|
||||
@ -897,4 +898,3 @@ addEventListener("beforeunload", function() {
|
||||
});
|
||||
|
||||
new WindowState(PORT);
|
||||
|
||||
|
@ -15,6 +15,7 @@ import { hookButton } from "../lib/manager/renamer";
|
||||
import { runtime } from "../lib/browser";
|
||||
import { $ } from "./winutil";
|
||||
import { validateSubFolder } from "../lib/util";
|
||||
import "./theme";
|
||||
|
||||
const PORT = runtime.connect(null, { name: "single" });
|
||||
|
||||
|
112
windows/theme.ts
Normal file
@ -0,0 +1,112 @@
|
||||
/* eslint-disable no-magic-numbers */
|
||||
"use strict";
|
||||
// License: MIT
|
||||
|
||||
import { PrefWatcher } from "../lib/prefs";
|
||||
import { theme } from "../lib/browser";
|
||||
import { memoize } from "../lib/memoize";
|
||||
|
||||
const resolveColor = memoize(function(color) {
|
||||
try {
|
||||
const el = document.createElement("div");
|
||||
el.style.backgroundColor = color;
|
||||
el.style.display = "none";
|
||||
document.body.appendChild(el);
|
||||
try {
|
||||
const resolved = window.getComputedStyle(el, null).backgroundColor;
|
||||
return resolved;
|
||||
}
|
||||
finally {
|
||||
document.body.removeChild(el);
|
||||
}
|
||||
}
|
||||
catch {
|
||||
return undefined;
|
||||
}
|
||||
}, 10, 1);
|
||||
|
||||
export const THEME = new class Theme extends PrefWatcher {
|
||||
public systemDark: boolean;
|
||||
|
||||
public themeDark?: boolean;
|
||||
|
||||
constructor() {
|
||||
super("theme", "default");
|
||||
if (theme && theme.onUpdated) {
|
||||
theme.onUpdated.addListener(this.onThemeUpdated.bind(this));
|
||||
theme.getCurrent().then((theme: any) => this.onThemeUpdated({theme}));
|
||||
}
|
||||
this.themeDark = undefined;
|
||||
const query = window.matchMedia("(prefers-color-scheme: dark)");
|
||||
this.systemDark = query.matches;
|
||||
query.addListener(e => {
|
||||
this.systemDark = e.matches;
|
||||
this.recalculate();
|
||||
});
|
||||
this.recalculate();
|
||||
}
|
||||
|
||||
get dark() {
|
||||
if (this.value === "dark") {
|
||||
return true;
|
||||
}
|
||||
if (this.value === "light") {
|
||||
return false;
|
||||
}
|
||||
if (typeof this.themeDark === "undefined") {
|
||||
return this.systemDark;
|
||||
}
|
||||
return this.themeDark;
|
||||
}
|
||||
|
||||
changed(prefs: any, key: string, value: any) {
|
||||
const rv = super.changed(prefs, key, value);
|
||||
this.recalculate();
|
||||
return rv;
|
||||
}
|
||||
|
||||
onThemeUpdated({theme}: {theme: any}) {
|
||||
try {
|
||||
if (!theme) {
|
||||
this.themeDark = undefined;
|
||||
return;
|
||||
}
|
||||
const {colors} = theme;
|
||||
if (!colors) {
|
||||
this.themeDark = undefined;
|
||||
return;
|
||||
}
|
||||
const color = resolveColor(
|
||||
colors.toolbar || colors.popup || colors.ntp_background);
|
||||
if (!color) {
|
||||
this.themeDark = undefined;
|
||||
return;
|
||||
}
|
||||
const pieces = color.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+(?:\.\d+)?))?\)$/);
|
||||
if (!pieces) {
|
||||
this.themeDark = undefined;
|
||||
return;
|
||||
}
|
||||
|
||||
const r = parseInt(pieces[1], 10);
|
||||
const g = parseInt(pieces[2], 10);
|
||||
const b = parseInt(pieces[3], 10);
|
||||
// HSP (Highly Sensitive Poo) equation from
|
||||
// http://alienryderflex.com/hsp.html
|
||||
const hsp = Math.sqrt(
|
||||
0.299 * (r * r) +
|
||||
0.587 * (g * g) +
|
||||
0.114 * (b * b)
|
||||
);
|
||||
|
||||
this.themeDark = hsp < 128;
|
||||
}
|
||||
finally {
|
||||
this.recalculate();
|
||||
}
|
||||
}
|
||||
|
||||
recalculate() {
|
||||
document.documentElement.classList[this.dark ? "add" : "remove"]("dark");
|
||||
}
|
||||
}();
|
250
yarn.lock
@ -36,10 +36,10 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.3.tgz#bdfd69d61e464dcc81b25159c270d75a73c1a636"
|
||||
integrity sha512-Il2DtDVRGDcqjDtE+rF8iqg1CArehSK84HZJCT7AMITlyXRBpuPhqGLDQMowraqqu1coEaimg4ZOqggt6L6L+A==
|
||||
|
||||
"@types/node@^12.7.2":
|
||||
version "12.7.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.2.tgz#c4e63af5e8823ce9cc3f0b34f7b998c2171f0c44"
|
||||
integrity sha512-dyYO+f6ihZEtNPDcWNR1fkoTDf3zAK3lAABDze3mz6POyIercH0lEUawUFXlG8xaQZmm1yEBON/4TsYv/laDYg==
|
||||
"@types/node@^12.7.8":
|
||||
version "12.7.8"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.8.tgz#cb1bf6800238898bc2ff6ffa5702c3cadd350708"
|
||||
integrity sha512-FMdVn84tJJdV+xe+53sYiZS4R5yn1mAIxfj+DVoNiQjTYz1+OYmjwEZr1ev9nU0axXwda0QDbYl06QHanRVH3A==
|
||||
|
||||
"@types/psl@^1.1.0":
|
||||
version "1.1.0"
|
||||
@ -51,43 +51,45 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/whatwg-mimetype/-/whatwg-mimetype-2.1.0.tgz#f981bbdf1813a75820a6ec3a7fdfa0d452552cc7"
|
||||
integrity sha512-bJ/bZ+pA69lm+Ll8JJRoAD9saH7unIMfxPQQpl7bxa00qNqvUXSyk3xvoRMea1uCpAOxweI7CzjWx48ysX6yug==
|
||||
|
||||
"@typescript-eslint/eslint-plugin@^2.0.0":
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.0.0.tgz#609a5d7b00ce21a6f94d7ef282eba9da57ca1e42"
|
||||
integrity sha512-Mo45nxTTELODdl7CgpZKJISvLb+Fu64OOO2ZFc2x8sYSnUpFrBUW3H+H/ZGYmEkfnL6VkdtOSxgdt+Av79j0sA==
|
||||
"@typescript-eslint/eslint-plugin@^2.3.2":
|
||||
version "2.3.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.3.2.tgz#7e112ca0bb29044d915baf10163a8199a20f7c69"
|
||||
integrity sha512-tcnpksq1bXzcIRbYLeXkgp6l+ggEMXXUcl1wsSvL807fRtmvVQKygElwEUf4hBA76dNag3VAK1q2m3vd7qJaZA==
|
||||
dependencies:
|
||||
"@typescript-eslint/experimental-utils" "2.0.0"
|
||||
eslint-utils "^1.4.0"
|
||||
"@typescript-eslint/experimental-utils" "2.3.2"
|
||||
eslint-utils "^1.4.2"
|
||||
functional-red-black-tree "^1.0.1"
|
||||
regexpp "^2.0.1"
|
||||
tsutils "^3.14.0"
|
||||
tsutils "^3.17.1"
|
||||
|
||||
"@typescript-eslint/experimental-utils@2.0.0":
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.0.0.tgz#f3d298bb411357f35c4184e24280b256b6321949"
|
||||
integrity sha512-XGJG6GNBXIEx/mN4eTRypN/EUmsd0VhVGQ1AG+WTgdvjHl0G8vHhVBHrd/5oI6RRYBRnedNymSYWW1HAdivtmg==
|
||||
"@typescript-eslint/experimental-utils@2.3.2":
|
||||
version "2.3.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.3.2.tgz#e50f31264507e6fec7b33840bb6af260c24f4ea8"
|
||||
integrity sha512-t+JGdTT6dRbmvKDlhlVkEueoZa0fhJNfG6z2cpnRPLwm3VwYr2BjR//acJGC1Yza0I9ZNcDfRY7ubQEvvfG6Jg==
|
||||
dependencies:
|
||||
"@types/json-schema" "^7.0.3"
|
||||
"@typescript-eslint/typescript-estree" "2.0.0"
|
||||
eslint-scope "^4.0.0"
|
||||
"@typescript-eslint/typescript-estree" "2.3.2"
|
||||
eslint-scope "^5.0.0"
|
||||
|
||||
"@typescript-eslint/parser@^2.0.0":
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.0.0.tgz#4273bb19d03489daf8372cdaccbc8042e098178f"
|
||||
integrity sha512-ibyMBMr0383ZKserIsp67+WnNVoM402HKkxqXGlxEZsXtnGGurbnY90pBO3e0nBUM7chEEOcxUhgw9aPq7fEBA==
|
||||
"@typescript-eslint/parser@^2.3.2":
|
||||
version "2.3.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.3.2.tgz#e9b742e191cd1209930da469cde379591ad0af5b"
|
||||
integrity sha512-nq1UQeNGdKdqdgF6Ww+Ov2OidWgiL96+JYdXXZ2rkP/OWyc6KMNSbs6MpRCpI8q+PmDa7hBnHNQIo7w/drYccA==
|
||||
dependencies:
|
||||
"@types/eslint-visitor-keys" "^1.0.0"
|
||||
"@typescript-eslint/experimental-utils" "2.0.0"
|
||||
"@typescript-eslint/typescript-estree" "2.0.0"
|
||||
eslint-visitor-keys "^1.0.0"
|
||||
"@typescript-eslint/experimental-utils" "2.3.2"
|
||||
"@typescript-eslint/typescript-estree" "2.3.2"
|
||||
eslint-visitor-keys "^1.1.0"
|
||||
|
||||
"@typescript-eslint/typescript-estree@2.0.0":
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.0.0.tgz#c9f6c0efd1b11475540d6a55dc973cc5b9a67e77"
|
||||
integrity sha512-NXbmzA3vWrSgavymlzMWNecgNOuiMMp62MO3kI7awZRLRcsA1QrYWo6q08m++uuAGVbXH/prZi2y1AWuhSu63w==
|
||||
"@typescript-eslint/typescript-estree@2.3.2":
|
||||
version "2.3.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.3.2.tgz#107414aa04e689fe6f7251eb63fb500217f2b7f4"
|
||||
integrity sha512-eZNEAai16nwyhIVIEaWQlaUgAU3S9CkQ58qvK0+3IuSdLJD3W1PNuehQFMIhW/mTP1oFR9GNoTcLg7gtXz6lzA==
|
||||
dependencies:
|
||||
glob "^7.1.4"
|
||||
is-glob "^4.0.1"
|
||||
lodash.unescape "4.0.1"
|
||||
semver "^6.2.0"
|
||||
semver "^6.3.0"
|
||||
|
||||
"@webassemblyjs/ast@1.8.5":
|
||||
version "1.8.5"
|
||||
@ -717,15 +719,6 @@ cli-width@^2.0.0:
|
||||
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
|
||||
integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=
|
||||
|
||||
cliui@^4.0.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49"
|
||||
integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==
|
||||
dependencies:
|
||||
string-width "^2.1.1"
|
||||
strip-ansi "^4.0.0"
|
||||
wrap-ansi "^2.0.0"
|
||||
|
||||
cliui@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
|
||||
@ -1116,7 +1109,7 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5:
|
||||
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
|
||||
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
|
||||
|
||||
eslint-scope@^4.0.0, eslint-scope@^4.0.3:
|
||||
eslint-scope@^4.0.3:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
|
||||
integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==
|
||||
@ -1132,7 +1125,7 @@ eslint-scope@^5.0.0:
|
||||
esrecurse "^4.1.0"
|
||||
estraverse "^4.1.1"
|
||||
|
||||
eslint-utils@^1.4.0, eslint-utils@^1.4.2:
|
||||
eslint-utils@^1.4.2:
|
||||
version "1.4.2"
|
||||
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.2.tgz#166a5180ef6ab7eb462f162fd0e6f2463d7309ab"
|
||||
integrity sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q==
|
||||
@ -1144,10 +1137,10 @@ eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0:
|
||||
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2"
|
||||
integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==
|
||||
|
||||
eslint@^6.2.2:
|
||||
version "6.2.2"
|
||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.2.2.tgz#03298280e7750d81fcd31431f3d333e43d93f24f"
|
||||
integrity sha512-mf0elOkxHbdyGX1IJEUsNBzCDdyoUgljF3rRlgfyYh0pwGnreLc0jjD6ZuleOibjmnUWZLY2eXwSooeOgGJ2jw==
|
||||
eslint@^6.5.1:
|
||||
version "6.5.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.5.1.tgz#828e4c469697d43bb586144be152198b91e96ed6"
|
||||
integrity sha512-32h99BoLYStT1iq1v2P9uwpyznQ4M2jRiFB6acitKz52Gqn+vPaMDUTB1bYi1WN4Nquj2w+t+bimYUG83DC55A==
|
||||
dependencies:
|
||||
"@babel/code-frame" "^7.0.0"
|
||||
ajv "^6.10.0"
|
||||
@ -1489,11 +1482,6 @@ gauge@~2.7.3:
|
||||
strip-ansi "^3.0.1"
|
||||
wide-align "^1.1.0"
|
||||
|
||||
get-caller-file@^1.0.1:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
|
||||
integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
|
||||
|
||||
get-caller-file@^2.0.1:
|
||||
version "2.0.5"
|
||||
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
|
||||
@ -2105,7 +2093,7 @@ lodash.unescape@4.0.1:
|
||||
resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c"
|
||||
integrity sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=
|
||||
|
||||
lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14:
|
||||
lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15:
|
||||
version "4.17.15"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
|
||||
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
|
||||
@ -2305,10 +2293,10 @@ mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1:
|
||||
dependencies:
|
||||
minimist "0.0.8"
|
||||
|
||||
mocha@^6.2.0:
|
||||
version "6.2.0"
|
||||
resolved "https://registry.yarnpkg.com/mocha/-/mocha-6.2.0.tgz#f896b642843445d1bb8bca60eabd9206b8916e56"
|
||||
integrity sha512-qwfFgY+7EKAAUAdv7VYMZQknI7YJSGesxHyhn6qD52DV8UcSZs5XwCifcZGMVIE4a5fbmhvbotxC0DLQ0oKohQ==
|
||||
mocha@^6.2.1:
|
||||
version "6.2.1"
|
||||
resolved "https://registry.yarnpkg.com/mocha/-/mocha-6.2.1.tgz#da941c99437da9bac412097859ff99543969f94c"
|
||||
integrity sha512-VCcWkLHwk79NYQc8cxhkmI8IigTIhsCwZ6RTxQsqK6go4UvEhzJkYuHm8B2YtlSxcYq2fY+ucr4JBwoD6ci80A==
|
||||
dependencies:
|
||||
ansi-colors "3.2.3"
|
||||
browser-stdout "1.3.1"
|
||||
@ -2330,9 +2318,9 @@ mocha@^6.2.0:
|
||||
supports-color "6.0.0"
|
||||
which "1.3.1"
|
||||
wide-align "1.1.3"
|
||||
yargs "13.2.2"
|
||||
yargs-parser "13.0.0"
|
||||
yargs-unparser "1.5.0"
|
||||
yargs "13.3.0"
|
||||
yargs-parser "13.1.1"
|
||||
yargs-unparser "1.6.0"
|
||||
|
||||
move-concurrently@^1.0.1:
|
||||
version "1.0.1"
|
||||
@ -2607,7 +2595,7 @@ os-homedir@^1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
|
||||
integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
|
||||
|
||||
os-locale@^3.0.0, os-locale@^3.1.0:
|
||||
os-locale@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a"
|
||||
integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==
|
||||
@ -2799,10 +2787,10 @@ prr@~1.0.1:
|
||||
resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
|
||||
integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY=
|
||||
|
||||
psl@^1.3.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/psl/-/psl-1.3.0.tgz#e1ebf6a3b5564fa8376f3da2275da76d875ca1bd"
|
||||
integrity sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag==
|
||||
psl@^1.4.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/psl/-/psl-1.4.0.tgz#5dd26156cdb69fa1fdb8ab1991667d3f80ced7c2"
|
||||
integrity sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==
|
||||
|
||||
public-encrypt@^4.0.0:
|
||||
version "4.0.3"
|
||||
@ -2951,11 +2939,6 @@ require-directory@^2.1.1:
|
||||
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
|
||||
integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
|
||||
|
||||
require-main-filename@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
|
||||
integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=
|
||||
|
||||
require-main-filename@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
|
||||
@ -3088,7 +3071,7 @@ semver@^5.3.0, semver@^5.5.0, semver@^5.6.0, semver@^5.7.0:
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
|
||||
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
|
||||
|
||||
semver@^6.0.0, semver@^6.1.2, semver@^6.2.0:
|
||||
semver@^6.0.0, semver@^6.1.2, semver@^6.3.0:
|
||||
version "6.3.0"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
|
||||
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
|
||||
@ -3289,7 +3272,7 @@ string-width@^1.0.1:
|
||||
is-fullwidth-code-point "^1.0.0"
|
||||
strip-ansi "^3.0.0"
|
||||
|
||||
"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1:
|
||||
"string-width@^1.0.2 || 2", string-width@^2.1.0:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
|
||||
integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
|
||||
@ -3498,10 +3481,10 @@ to-regex@^3.0.1, to-regex@^3.0.2:
|
||||
regex-not "^1.0.2"
|
||||
safe-regex "^1.1.0"
|
||||
|
||||
ts-loader@^6.0.4:
|
||||
version "6.0.4"
|
||||
resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-6.0.4.tgz#bc331ad91a887a60632d94c9f79448666f2c4b63"
|
||||
integrity sha512-p2zJYe7OtwR+49kv4gs7v4dMrfYD1IPpOtqiSPCbe8oR+4zEBtdHwzM7A7M91F+suReqgzZrlClk4LRSSp882g==
|
||||
ts-loader@^6.2.0:
|
||||
version "6.2.0"
|
||||
resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-6.2.0.tgz#52d3993ecbc5474c1513242388e1049da0fce880"
|
||||
integrity sha512-Da8h3fD+HiZ9GvZJydqzk3mTC9nuOKYlJcpuk+Zv6Y1DPaMvBL+56GRzZFypx2cWrZFMsQr869+Ua2slGoLxvQ==
|
||||
dependencies:
|
||||
chalk "^2.3.0"
|
||||
enhanced-resolve "^4.0.0"
|
||||
@ -3509,10 +3492,10 @@ ts-loader@^6.0.4:
|
||||
micromatch "^4.0.0"
|
||||
semver "^6.0.0"
|
||||
|
||||
ts-node@^8.3.0:
|
||||
version "8.3.0"
|
||||
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.3.0.tgz#e4059618411371924a1fb5f3b125915f324efb57"
|
||||
integrity sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==
|
||||
ts-node@^8.4.1:
|
||||
version "8.4.1"
|
||||
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.4.1.tgz#270b0dba16e8723c9fa4f9b4775d3810fd994b4f"
|
||||
integrity sha512-5LpRN+mTiCs7lI5EtbXmF/HfMeCjzt7DH9CZwtkr6SywStrNQC723wG+aOWFiLNn7zT3kD/RnFqi3ZUfr4l5Qw==
|
||||
dependencies:
|
||||
arg "^4.1.0"
|
||||
diff "^4.0.1"
|
||||
@ -3525,7 +3508,7 @@ tslib@^1.8.1, tslib@^1.9.0:
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
|
||||
integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==
|
||||
|
||||
tsutils@^3.14.0:
|
||||
tsutils@^3.17.1:
|
||||
version "3.17.1"
|
||||
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759"
|
||||
integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==
|
||||
@ -3554,10 +3537,10 @@ typedarray@^0.0.6:
|
||||
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
|
||||
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
|
||||
|
||||
typescript@^3.5.3:
|
||||
version "3.5.3"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977"
|
||||
integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==
|
||||
typescript@^3.6.3:
|
||||
version "3.6.3"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.6.3.tgz#fea942fabb20f7e1ca7164ff626f1a9f3f70b4da"
|
||||
integrity sha512-N7bceJL1CtRQ2RiG0AQME13ksR7DiuQh/QehubYcghzv20tnh+MQnQIuJddTmsbqYj+dztchykemz0zFzlvdQw==
|
||||
|
||||
union-value@^1.0.0:
|
||||
version "1.0.1"
|
||||
@ -3664,15 +3647,15 @@ watchpack@^1.6.0:
|
||||
graceful-fs "^4.1.2"
|
||||
neo-async "^2.5.0"
|
||||
|
||||
webextension-polyfill@^0.4.0:
|
||||
version "0.4.0"
|
||||
resolved "https://registry.yarnpkg.com/webextension-polyfill/-/webextension-polyfill-0.4.0.tgz#9cc5a60f0f2bf907a6b349fdd7e61701f54956f9"
|
||||
integrity sha512-oreMp+EoAo1pzRMigx4jB5jInIpx6NTCySPSjGyLLee/dCIPiRqowCEfbFP8o20wz9SOtNwSsfkaJ9D/tRgpag==
|
||||
webextension-polyfill@^0.5.0:
|
||||
version "0.5.0"
|
||||
resolved "https://registry.yarnpkg.com/webextension-polyfill/-/webextension-polyfill-0.5.0.tgz#795e0bf6a2b8eadcdb6edaecd169e9228c747519"
|
||||
integrity sha512-aFrl38x43t1bTboX/paCT8I97+idzX/TY0+fuM52hrIkCpYfROEF9kSn0BXuEIi3J9LTYt2ZZKkhx9NB1qF3nA==
|
||||
|
||||
webpack-cli@^3.3.7:
|
||||
version "3.3.7"
|
||||
resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.7.tgz#77c8580dd8e92f69d635e0238eaf9d9c15759a91"
|
||||
integrity sha512-OhTUCttAsr+IZSMVwGROGRHvT+QAs8H6/mHIl4SvhAwYywjiylYjpwybGx7WQ9Hkb45FhjtsymkwiRRbGJ1SZQ==
|
||||
webpack-cli@^3.3.9:
|
||||
version "3.3.9"
|
||||
resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.9.tgz#79c27e71f94b7fe324d594ab64a8e396b9daa91a"
|
||||
integrity sha512-xwnSxWl8nZtBl/AFJCOn9pG7s5CYUYdZxmmukv+fAHLcBIHM36dImfpQg3WfShZXeArkWlf6QRw24Klcsv8a5A==
|
||||
dependencies:
|
||||
chalk "2.4.2"
|
||||
cross-spawn "6.0.5"
|
||||
@ -3694,10 +3677,10 @@ webpack-sources@^1.4.0, webpack-sources@^1.4.1:
|
||||
source-list-map "^2.0.0"
|
||||
source-map "~0.6.1"
|
||||
|
||||
webpack@^4.39.3:
|
||||
version "4.39.3"
|
||||
resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.39.3.tgz#a02179d1032156b713b6ec2da7e0df9d037def50"
|
||||
integrity sha512-BXSI9M211JyCVc3JxHWDpze85CvjC842EvpRsVTc/d15YJGlox7GIDd38kJgWrb3ZluyvIjgenbLDMBQPDcxYQ==
|
||||
webpack@^4.41.0:
|
||||
version "4.41.0"
|
||||
resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.0.tgz#db6a254bde671769f7c14e90a1a55e73602fc70b"
|
||||
integrity sha512-yNV98U4r7wX1VJAj5kyMsu36T8RPPQntcb5fJLOsMz/pt/WrKC0Vp1bAlqPLkA1LegSwQwf6P+kAbyhRKVQ72g==
|
||||
dependencies:
|
||||
"@webassemblyjs/ast" "1.8.5"
|
||||
"@webassemblyjs/helper-module-context" "1.8.5"
|
||||
@ -3759,14 +3742,6 @@ worker-farm@^1.7.0:
|
||||
dependencies:
|
||||
errno "~0.1.7"
|
||||
|
||||
wrap-ansi@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
|
||||
integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=
|
||||
dependencies:
|
||||
string-width "^1.0.1"
|
||||
strip-ansi "^3.0.1"
|
||||
|
||||
wrap-ansi@^5.1.0:
|
||||
version "5.1.0"
|
||||
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
|
||||
@ -3800,7 +3775,7 @@ xtend@^4.0.0, xtend@~4.0.1:
|
||||
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
|
||||
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
|
||||
|
||||
"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0:
|
||||
y18n@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
|
||||
integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
|
||||
@ -3810,23 +3785,7 @@ yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3:
|
||||
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9"
|
||||
integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==
|
||||
|
||||
yargs-parser@13.0.0:
|
||||
version "13.0.0"
|
||||
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.0.0.tgz#3fc44f3e76a8bdb1cc3602e860108602e5ccde8b"
|
||||
integrity sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==
|
||||
dependencies:
|
||||
camelcase "^5.0.0"
|
||||
decamelize "^1.2.0"
|
||||
|
||||
yargs-parser@^11.1.1:
|
||||
version "11.1.1"
|
||||
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4"
|
||||
integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==
|
||||
dependencies:
|
||||
camelcase "^5.0.0"
|
||||
decamelize "^1.2.0"
|
||||
|
||||
yargs-parser@^13.0.0, yargs-parser@^13.1.0:
|
||||
yargs-parser@13.1.1, yargs-parser@^13.1.0, yargs-parser@^13.1.1:
|
||||
version "13.1.1"
|
||||
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0"
|
||||
integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==
|
||||
@ -3834,31 +3793,14 @@ yargs-parser@^13.0.0, yargs-parser@^13.1.0:
|
||||
camelcase "^5.0.0"
|
||||
decamelize "^1.2.0"
|
||||
|
||||
yargs-unparser@1.5.0:
|
||||
version "1.5.0"
|
||||
resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.5.0.tgz#f2bb2a7e83cbc87bb95c8e572828a06c9add6e0d"
|
||||
integrity sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==
|
||||
yargs-unparser@1.6.0:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.6.0.tgz#ef25c2c769ff6bd09e4b0f9d7c605fb27846ea9f"
|
||||
integrity sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==
|
||||
dependencies:
|
||||
flat "^4.1.0"
|
||||
lodash "^4.17.11"
|
||||
yargs "^12.0.5"
|
||||
|
||||
yargs@13.2.2:
|
||||
version "13.2.2"
|
||||
resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.2.tgz#0c101f580ae95cea7f39d927e7770e3fdc97f993"
|
||||
integrity sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==
|
||||
dependencies:
|
||||
cliui "^4.0.0"
|
||||
find-up "^3.0.0"
|
||||
get-caller-file "^2.0.1"
|
||||
os-locale "^3.1.0"
|
||||
require-directory "^2.1.1"
|
||||
require-main-filename "^2.0.0"
|
||||
set-blocking "^2.0.0"
|
||||
string-width "^3.0.0"
|
||||
which-module "^2.0.0"
|
||||
y18n "^4.0.0"
|
||||
yargs-parser "^13.0.0"
|
||||
lodash "^4.17.15"
|
||||
yargs "^13.3.0"
|
||||
|
||||
yargs@13.2.4:
|
||||
version "13.2.4"
|
||||
@ -3877,23 +3819,21 @@ yargs@13.2.4:
|
||||
y18n "^4.0.0"
|
||||
yargs-parser "^13.1.0"
|
||||
|
||||
yargs@^12.0.5:
|
||||
version "12.0.5"
|
||||
resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13"
|
||||
integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==
|
||||
yargs@13.3.0, yargs@^13.3.0:
|
||||
version "13.3.0"
|
||||
resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83"
|
||||
integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==
|
||||
dependencies:
|
||||
cliui "^4.0.0"
|
||||
decamelize "^1.2.0"
|
||||
cliui "^5.0.0"
|
||||
find-up "^3.0.0"
|
||||
get-caller-file "^1.0.1"
|
||||
os-locale "^3.0.0"
|
||||
get-caller-file "^2.0.1"
|
||||
require-directory "^2.1.1"
|
||||
require-main-filename "^1.0.1"
|
||||
require-main-filename "^2.0.0"
|
||||
set-blocking "^2.0.0"
|
||||
string-width "^2.0.0"
|
||||
string-width "^3.0.0"
|
||||
which-module "^2.0.0"
|
||||
y18n "^3.2.1 || ^4.0.0"
|
||||
yargs-parser "^11.1.1"
|
||||
y18n "^4.0.0"
|
||||
yargs-parser "^13.1.1"
|
||||
|
||||
yn@^3.0.0:
|
||||
version "3.1.1"
|
||||
|