diff --git a/archivebox/api/auth.py b/archivebox/api/auth.py index 1af564e2..7d88b928 100644 --- a/archivebox/api/auth.py +++ b/archivebox/api/auth.py @@ -105,6 +105,6 @@ API_AUTH_METHODS = [ HeaderTokenAuth(), BearerTokenAuth(), QueryParamTokenAuth(), - django_auth_superuser, + # django_auth_superuser, # django admin cookie auth, not secure to use with csrf=False UsernameAndPasswordAuth(), ] diff --git a/archivebox/config.py b/archivebox/config.py index 8d4a0695..0495161c 100644 --- a/archivebox/config.py +++ b/archivebox/config.py @@ -152,10 +152,10 @@ CONFIG_SCHEMA: Dict[str, ConfigDefaultDict] = { 'CHECK_SSL_VALIDITY': {'type': bool, 'default': True}, 'MEDIA_MAX_SIZE': {'type': str, 'default': '750m'}, - 'USER_AGENT': {'type': str, 'default': None}, - 'CURL_USER_AGENT': {'type': str, 'default': lambda c: c['USER_AGENT'] or 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/) curl/{CURL_VERSION}'}, - 'WGET_USER_AGENT': {'type': str, 'default': lambda c: c['USER_AGENT'] or 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/) wget/{WGET_VERSION}'}, - 'CHROME_USER_AGENT': {'type': str, 'default': lambda c: c['USER_AGENT'] or 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/)'}, + 'USER_AGENT': {'type': str, 'default': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/)'}, + 'CURL_USER_AGENT': {'type': str, 'default': lambda c: c['USER_AGENT'] + ' curl/{CURL_VERSION}'}, + 'WGET_USER_AGENT': {'type': str, 'default': lambda c: c['USER_AGENT'] + ' wget/{WGET_VERSION}'}, + 'CHROME_USER_AGENT': {'type': str, 'default': lambda c: c['USER_AGENT']}, 'COOKIES_FILE': {'type': str, 'default': None}, 'CHROME_USER_DATA_DIR': {'type': str, 'default': None}, diff --git a/archivebox/core/admin.py b/archivebox/core/admin.py index 29463623..0b0407e9 100644 --- a/archivebox/core/admin.py +++ b/archivebox/core/admin.py @@ -251,6 +251,7 @@ from django.contrib.admin.widgets import FilteredSelectMultiple class SnapshotActionForm(ActionForm): tags = forms.ModelMultipleChoiceField( + label='Edit tags', queryset=Tag.objects.all(), required=False, widget=FilteredSelectMultiple( @@ -526,16 +527,7 @@ class SnapshotAdmin(SearchResultsAdminMixin, ABIDModelAdmin): # return super().changelist_view(request, extra_context=None) @admin.action( - description="Pull" - ) - def update_snapshots(self, request, queryset): - archive_links([ - snapshot.as_link() - for snapshot in queryset - ], out_dir=CONFIG.OUTPUT_DIR) - - @admin.action( - description="⬇️ Title" + description="ℹ️ Get Title" ) def update_titles(self, request, queryset): archive_links([ @@ -544,7 +536,17 @@ class SnapshotAdmin(SearchResultsAdminMixin, ABIDModelAdmin): ], overwrite=True, methods=('title','favicon'), out_dir=CONFIG.OUTPUT_DIR) @admin.action( - description="Re-Snapshot" + description="⬇️ Get Missing" + ) + def update_snapshots(self, request, queryset): + archive_links([ + snapshot.as_link() + for snapshot in queryset + ], out_dir=CONFIG.OUTPUT_DIR) + + + @admin.action( + description="📑 Archive again" ) def resnapshot_snapshot(self, request, queryset): for snapshot in queryset: @@ -553,7 +555,7 @@ class SnapshotAdmin(SearchResultsAdminMixin, ABIDModelAdmin): add(new_url, tag=snapshot.tags_str()) @admin.action( - description="Reset" + description="♲ Redo" ) def overwrite_snapshots(self, request, queryset): archive_links([ @@ -562,7 +564,7 @@ class SnapshotAdmin(SearchResultsAdminMixin, ABIDModelAdmin): ], overwrite=True, out_dir=CONFIG.OUTPUT_DIR) @admin.action( - description="Delete" + description="☠️ Delete" ) def delete_snapshots(self, request, queryset): remove(snapshots=queryset, yes=True, delete=True, out_dir=CONFIG.OUTPUT_DIR) diff --git a/archivebox/pkg/apps.py b/archivebox/pkg/apps.py index fa8a6913..b3be5712 100644 --- a/archivebox/pkg/apps.py +++ b/archivebox/pkg/apps.py @@ -4,8 +4,10 @@ from django.apps import AppConfig class PkgsConfig(AppConfig): - default_auto_field = 'django.db.models.BigAutoField' name = 'pkg' + verbose_name = 'Package Management' + + default_auto_field = 'django.db.models.BigAutoField' def ready(self): from .settings import LOADED_DEPENDENCIES diff --git a/archivebox/templates/static/admin.css b/archivebox/templates/static/admin.css index 25314429..395e5d86 100644 --- a/archivebox/templates/static/admin.css +++ b/archivebox/templates/static/admin.css @@ -143,11 +143,11 @@ body.model-snapshot.change-list #content .object-tools { color: #333; } #content #changelist .actions .button[name=update_snapshots] { - background-color:lightseagreen; + background-color: #9ee54b; color: #333; } #content #changelist .actions .button[name=resnapshot_snapshot] { - background-color: #9ee54b; + background-color:lightseagreen; color: #333; } #content #changelist .actions .button[name=overwrite_snapshots] { diff --git a/archivebox/vendor/pydantic-pkgr b/archivebox/vendor/pydantic-pkgr index 2cd84453..c97de57f 160000 --- a/archivebox/vendor/pydantic-pkgr +++ b/archivebox/vendor/pydantic-pkgr @@ -1 +1 @@ -Subproject commit 2cd844533d888ce29b9bf32b8363510dd0d76166 +Subproject commit c97de57f8df5f36a0f8cd1e51645f114e74bffb0