diff --git a/config.dev.json b/config.dev.json index 8e2cfdf..c1533ad 100644 --- a/config.dev.json +++ b/config.dev.json @@ -1,4 +1,4 @@ { - "debug": true, + "debug": false, "allow_test_login": true } diff --git a/dbmodels/db_data.go b/dbmodels/db_data.go index 18bf5af..6eae388 100644 --- a/dbmodels/db_data.go +++ b/dbmodels/db_data.go @@ -402,13 +402,11 @@ var USER_ROLES = []string{ } var AGENT_RELATIONS = []string{ - "Schöpfer", "Autor:in", "Herausgeber:in", "Verlag", "Druck", "Vertrieb", - "Stecher:in", "Zeichner:in", "Komponist:in", "Künstler:in", diff --git a/fields.json b/fields.json index 0ccb5e9..5ce998f 100644 --- a/fields.json +++ b/fields.json @@ -471,13 +471,11 @@ "system": false, "type": "select", "values": [ - "Schöpfer", "Autor:in", "Herausgeber:in", "Verlag", "Druck", "Vertrieb", - "Stecher:in", "Zeichner:in", "Komponist:in", "Künstler:in", @@ -615,13 +613,11 @@ "system": false, "type": "select", "values": [ - "Schöpfer", "Autor:in", "Herausgeber:in", "Verlag", "Druck", "Vertrieb", - "Stecher:in", "Zeichner:in", "Komponist:in", "Künstler:in", diff --git a/migrations/1768403945_page_seed.go b/migrations/1768403945_page_seed.go index 64a31ed..f6f3cdd 100644 --- a/migrations/1768403945_page_seed.go +++ b/migrations/1768403945_page_seed.go @@ -60,7 +60,7 @@ const (

Die Mannigfaltigkeit des periodischen Taschenbuches zeigt so viele Facetten, daß es schwer hält, eine beständige Gattung auszumachen. Beschreiben lassen sich wiederkehrende Einzelmerkmale, die in unterschiedlicher Häufung, kaum aber in ihrer Gesamtheit beim jeweiligen Exemplar vorkommen. Unsicher ist schon die Verwendung der Ausdrücke ALMANACH und TASCHENBUCH oder auch KALENDER; sie überschneiden sich großenteils, ohne sich ganz zu decken. Es könnte sich empfehlen, im Taschenbuch den Oberbegriff zu sehen, wenn nicht heutzutage unter dem Taschenbuch eine ganz andere Produktform des Buches bezeichnet wäre.

Das Wort ALMANACH (arabischen Ursprungs) ist eine Bezeichnung für Kalender, und mit dem Kalender hat das hier dargestellte Taschenbuch die angelegte Jährlichkeit gemein, auch wenn so manche Erscheinung über den ersten Jahrgang nicht hinauskommt. Oftmals, aber keineswegs immer und immer seltener werdend, ist ein Kalender dem Textteil vorgebunden. Regional erhobene Kalender-Stempelsteuern konnten hier prohibitiv wirken. Einige besonders erfolgreiche Almanache erfuhren noch Jahre nach dem Erstdruck Folgeauflagen, in denen dann der überflüssig gewordene Kalender, nicht jedoch die ursprüngliche Jahresdatierung, entfallen konnte. – Seiner Entwicklungsgeschichte nach ist das Taschenbuch durchaus vom Kalender herzuleiten, aber es emanzipiert sich gleichsam von diesem und läßt seine Herkunft vergessen. Was bleibt ist die Taschenhandlichkeit des Formates: Sedez oder Duodez, seltener Octav (aber auch hierzu in der Spätzeit die seltene Ausnahme des Großoctav). Und es scheint, daß die Almanache, Kalendern gleich, meist keinen Ruheplatz in den Bücherschränken gefunden haben, sondern zur Hand genommen und vernutzt wurden; die bis heute erhalten gebliebenen Exemplare sind nicht selten ramponiert, zum Schaden für den zierlich gestalteten Einband.

Welche Art von Texten füllte die Almanache und Taschenbücher? Anfangs war es Lyrik, sehr bald aber, als die Mode grassierte: quodlibet, alles was beliebt; unterhalten sollte es, in Spaß oder Ernst. Nur selten mischt Belehrendes sich ein, im Unterschied zum größer formatierten aber sehr viel schmaleren Land- oder Volkskalender. Sieht man in das Register der vorzüglichen Geschichte der deutschen Taschenbücher und Almanache aus der klassisch-romantischen Zeit von LANCKORONSKA und RÜMANN, so findet man schon in den Titeln die Hinweise auf jede nur denkbare Art von Adressaten und zugehörigen Inhalten: Wanderer, Reiter, Bienenfreunde, Künstler, Scheidekünstler und Apotheker, Liebende, Tollhäusler, Ketzer, Ärzte und Nichtärzte, Charadenfreunde, Kaufleute, Lottospieler u.v.a.m.. Vor allem aber wird die Weiblichkeit angesprochen, seien es Frauenzimmer oder Damen, Dienstmädchen, das Schöne Geschlecht, Kammerjungfern, Grabennymphen, Edle Weiber und Mädchen. Selbst wenn es der Titel nicht verrät, ist öfter an die Leserin gedacht als an den Herrn, sie hatte wohl mehr gesellige Muße, und sie war der gemeinte Empfänger des hübschen kleinen Geschenks. Denn zum Schenken war er bestimmt und dazu fügte sich der Erscheinungstermin zur Michaelismesse, rechtzeitig zu Weihnachten und Neujahr.

-

Schwerpunkt der bibliographischen Erfassung und inhaltlichen Erschließung sind zunächst die literarischen Almanache – ungeachtet ihres Niveaus. Sie sind Versammlungsort nicht nur der Großen, sondern vorzüglich derjenigen Dichter und Prosaisten, deren Schriften heute – zu Recht oder zu Unrecht– vergessen sind, die aber aus manchen Gründen gelegentlich doch in den Blick des Interesses rücken. Das Verzeichnis soll sie, die bislang nur unter Schwierigkeiten aufzufinden waren, zugänglich machen. Besonders wichtig, weil eine Wahrnehmungslücke füllend, erschien uns daneben die Registrierung der Zeichner und Stecher, deren Graphiken wir als Vollbild wiedergeben wollen. Daß gerade in diesem Bereich die vorliegenden Exemplare oft unvollständig sind, führt gelegentlich zu Fehlstellen in unserer Darstellung (die aber auf Dauer geschlossen werden); es unterstreicht zugleich die Notwendigkeit des gesetzten Ziels. Indes werden nicht nur die Vorlagen Mängel aufweisen, auch in der Bearbeitung werden unvermeidbar Fehler entstehen. Wir bitten aufmerksame Benutzer, uns hierüber zu informieren und dadurch zur Besserung zu verhelfen.

+

Schwerpunkt der bibliographischen Erfassung und inhaltlichen Erschließung sind zunächst die literarischen Almanache – ungeachtet ihres Niveaus. Sie sind Versammlungsort nicht nur der Großen, sondern vorzüglich derjenigen Dichter und Prosaisten, deren Schriften heute – zu Recht oder zu Unrecht– vergessen sind, die aber aus manchen Gründen gelegentlich doch in den Blick des Interesses rücken. Das Verzeichnis soll sie, die bislang nur unter Schwierigkeiten aufzufinden waren, zugänglich machen. Besonders wichtig, weil eine Wahrnehmungslücke füllend, erschien uns daneben die Registrierung der Zeichner und Kupferstecher, deren Graphiken wir als Vollbild wiedergeben wollen. Daß gerade in diesem Bereich die vorliegenden Exemplare oft unvollständig sind, führt gelegentlich zu Fehlstellen in unserer Darstellung (die aber auf Dauer geschlossen werden); es unterstreicht zugleich die Notwendigkeit des gesetzten Ziels. Indes werden nicht nur die Vorlagen Mängel aufweisen, auch in der Bearbeitung werden unvermeidbar Fehler entstehen. Wir bitten aufmerksame Benutzer, uns hierüber zu informieren und dadurch zur Besserung zu verhelfen.

Auf längere Sicht sollen alle periodisch angelegten Almanache und Taschenbücher des 18. und 19. Jahrhunderts aufgenommen werden, um das gesamte Spektrum dieser Publikationsart sichtbar zu machen. Im nicht-literarischen Bereich werden wir uns jedoch zumeist beschränken auf die bibliographische Registrierung und eine kurze Beschreibung der Einzelbände und wir werden hierbei auf die ausführliche Inhaltsübersicht verzichten und uns mit der Wiedergabe eines Inhaltsverzeichnisses begnügen.

Grundsätzlich ist Voraussetzung unserer bibliographischen Erfassung die Autopsie des Einzelemplares. Dies schützt indes nicht immer vor Verwirrung: Variante Doppeldrucke (etwa bei unbezeichnetet Folgeauflagen oder nach Zensureingriffen), fehlende Blätter und andere Fehlerquellen sind nicht in jedem Fall wahrnehmbar. Auf alles auffällig Sonderliche wird anmerkend hingewiesen. Um uns möglicher Vollständigkeit anzunähern, behalten wir uns vor, im Einzelfall auch ohne Autopsie nach bibliographischen Vorgaben aufzunehmen; wir werden dies jedoch immer unter Nennung der Quelle ausdrücklich anmerken.

Adrian Braunbehrens

` diff --git a/migrations/seed/r_contents_agents.go b/migrations/seed/r_contents_agents.go index 235229d..0f7b9b1 100644 --- a/migrations/seed/r_contents_agents.go +++ b/migrations/seed/r_contents_agents.go @@ -41,7 +41,7 @@ func RecordsFromRelationInhalteAkteure( switch relation.Relation { case "1": - record.SetType("Schöpfer") + record.SetType("Autor:in") cat := content.MusenalmType() ber := agent.Profession() probt := 0 @@ -100,7 +100,7 @@ func RecordsFromRelationInhalteAkteure( break } - record.SetType("Schöpfer") + record.SetType("Autor:in") case "2": record.SetType("Autor:in") case "3": diff --git a/scratchpad.md b/scratchpad.md index e4c6069..8e32196 100644 --- a/scratchpad.md +++ b/scratchpad.md @@ -14,7 +14,7 @@ TODO: BUGS: - Schriftgröße Edit-Screens - doppelte Einträge Reihen-Liste, Endpoint /reihen (siehe Abendstunden) -- Neuer ort anlegen führ manachmal auf DB-ID +- Neuer Ort anlegen führ manachmal auf DB-ID Features: - Extra-DB für FTS5: ist eigentlich nichtTeil der Haupt-DB, sondern nur Suchindex diff --git a/test/clicker/.gitignore b/test/clicker/.gitignore new file mode 100644 index 0000000..c2658d7 --- /dev/null +++ b/test/clicker/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/test/clicker/README.md b/test/clicker/README.md new file mode 100644 index 0000000..4803883 --- /dev/null +++ b/test/clicker/README.md @@ -0,0 +1,51 @@ +# Clicker + +Parallel random-click runner for http://localhost:8090/ using Playwright. + +## Setup + +From repo root: + +``` +cd test/clicker +npm install +npx playwright install chromium +``` + +## Run + +Default: 20 workers, 200 steps, 2–30s delay, start at `/reihen`, staggered start, random typing enabled (3–5 chars), random POST submit. + +``` +cd test/clicker +npm run click +``` + +Custom: + +``` +node clicker.mjs --base http://localhost:8090/reihen --workers 20 --steps 300 --minDelay 2000 --maxDelay 30000 --timeout 10000 --startStagger 500 --typeChance 0.25 --enterChance 0.35 --postChance 0.1 --minTypeLen 3 --maxTypeLen 5 +``` + +Notes: +- Filters out logout/delete/login links, external links, mailto/js links. +- Each worker uses a separate browser context. +- HTTP clicker logs error URLs and counts non-2xx responses as errors. + +## HTTP clicker + +``` +cd test/clicker +node http_clicker.mjs --base http://localhost:8090/ --workers 300 --steps 500 --minDelay 50 --maxDelay 500 --timeout 5000 --minConcurrent 2 --maxConcurrent 6 --warmupMs 15000 --warmupConcurrent 1 --fetchImages 1 --imageChance 0.25 +``` + +Flags: +- `--fetchImages 0|1` (default 1): also request `` URLs discovered in HTML. +- `--imageChance 0..1` (default 0.25): chance a request is an image instead of a page. +- `--maxImagePool` (default 500): max cached image URLs. +- `--fetchAssets 0|1` (default 1): also request `