initial data & migrations

This commit is contained in:
Simon Martens
2025-02-07 17:42:10 +01:00
parent 45f28effe8
commit 7ff6bd9d28
85 changed files with 2481809 additions and 0 deletions

29983
data/Akteure.xml Normal file

File diff suppressed because it is too large Load Diff

73
data/Akteure.xsd Normal file
View File

@@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:od="urn:schemas-microsoft-com:officedata">
<xsd:element name="dataroot">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="Akteure" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="generated" type="xsd:dateTime"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Akteure">
<xsd:annotation>
<xsd:appinfo>
<od:index index-name="PrimaryKey" index-key="ID " primary="yes" unique="yes" clustered="no" order="asc"/>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ID" minOccurs="1" od:jetType="autonumber" od:sqlSType="int" od:autoUnique="yes" od:nonNullable="yes" type="xsd:int"/>
<xsd:element name="NAME" minOccurs="0" od:jetType="text" od:sqlSType="nvarchar">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="ORGANISATION" minOccurs="1" od:jetType="yesno" od:sqlSType="bit" od:nonNullable="yes" type="xsd:boolean"/>
<xsd:element name="LEBENSDATEN" minOccurs="0" od:jetType="text" od:sqlSType="nvarchar">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="BERUF" minOccurs="0" od:jetType="text" od:sqlSType="nvarchar">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="NACHWEIS" minOccurs="0" od:jetType="text" od:sqlSType="nvarchar">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="PSEUDONYM" minOccurs="0" od:jetType="memo" od:sqlSType="ntext">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="536870910"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="ANMERKUNGEN" minOccurs="0" od:jetType="memo" od:sqlSType="ntext" od:textFormat="1">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="536870910"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="GND" minOccurs="0" od:jetType="memo" od:sqlSType="ntext">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="536870910"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

90492
data/Baende.xml Normal file

File diff suppressed because it is too large Load Diff

111
data/Baende.xsd Normal file
View File

@@ -0,0 +1,111 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:od="urn:schemas-microsoft-com:officedata">
<xsd:element name="dataroot">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="Baende" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="generated" type="xsd:dateTime"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Baende">
<xsd:annotation>
<xsd:appinfo>
<od:index index-name="BIBLIO-ID" index-key="BIBLIO-ID " primary="no" unique="no" clustered="no" order="asc"/>
<od:index index-name="PrimaryKey" index-key="ID " primary="yes" unique="yes" clustered="no" order="asc"/>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ID" minOccurs="1" od:jetType="autonumber" od:sqlSType="int" od:autoUnique="yes" od:nonNullable="yes" type="xsd:int"/>
<xsd:element name="BIBLIO-ID" minOccurs="0" od:jetType="longinteger" od:sqlSType="int" type="xsd:int"/>
<xsd:element name="SORTIERTITEL" minOccurs="0" od:jetType="text" od:sqlSType="nvarchar">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="TITEL" minOccurs="0" od:jetType="memo" od:sqlSType="ntext">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="536870910"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="ORT-ALT" minOccurs="0" od:jetType="text" od:sqlSType="nvarchar">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="JAHR" minOccurs="0" od:jetType="longinteger" od:sqlSType="int" type="xsd:int"/>
<xsd:element name="HERAUSGEBER" minOccurs="0" od:jetType="memo" od:sqlSType="ntext">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="536870910"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="AUTOPSIE" minOccurs="1" od:jetType="yesno" od:sqlSType="bit" od:nonNullable="yes" type="xsd:boolean"/>
<xsd:element name="ERFASST" minOccurs="1" od:jetType="yesno" od:sqlSType="bit" od:nonNullable="yes" type="xsd:boolean"/>
<xsd:element name="STATUS" minOccurs="0" od:jetType="complex" od:jetComplexType="MSysComplexType_Text" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Value" minOccurs="0" od:jetType="text" od:sqlSType="nvarchar">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="NACHWEIS" minOccurs="0" od:jetType="text" od:sqlSType="nvarchar">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="STRUKTUR" minOccurs="0" od:jetType="memo" od:sqlSType="ntext">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="536870910"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="NORM" minOccurs="0" od:jetType="memo" od:sqlSType="ntext">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="536870910"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="ANMERKUNGEN" minOccurs="0" od:jetType="memo" od:sqlSType="ntext" od:textFormat="1">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="536870910"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="REIHENTITEL-ALT" minOccurs="0" od:jetType="text" od:sqlSType="nvarchar">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="ORTE" minOccurs="0" od:jetType="complex" od:jetComplexType="MSysComplexType_Long" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Value" minOccurs="0" od:jetType="longinteger" od:sqlSType="int" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

1809762
data/Inhalte.xml Normal file

File diff suppressed because it is too large Load Diff

90
data/Inhalte.xsd Normal file
View File

@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:od="urn:schemas-microsoft-com:officedata">
<xsd:element name="dataroot">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="Inhalte" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="generated" type="xsd:dateTime"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Inhalte">
<xsd:annotation>
<xsd:appinfo>
<od:index index-name="BaendeInhalte" index-key="BAND " primary="no" unique="no" clustered="no" order="asc"/>
<od:index index-name="OBJEKTNUMMER" index-key="OBJEKTNUMMER " primary="no" unique="no" clustered="no" order="asc"/>
<od:index index-name="PrimaryKey" index-key="ID " primary="yes" unique="yes" clustered="no" order="asc"/>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ID" minOccurs="1" od:jetType="autonumber" od:sqlSType="int" od:autoUnique="yes" od:nonNullable="yes" type="xsd:int"/>
<xsd:element name="BAND" minOccurs="0" od:jetType="longinteger" od:sqlSType="int" type="xsd:int"/>
<xsd:element name="OBJEKTNUMMER" minOccurs="0" od:jetType="decimal" od:sqlSType="decimal">
<xsd:simpleType>
<xsd:restriction base="xsd:decimal">
<xsd:totalDigits value="18"/>
<xsd:fractionDigits value="8"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="TITEL" minOccurs="0" od:jetType="memo" od:sqlSType="ntext">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="536870910"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="AUTOR" minOccurs="0" od:jetType="memo" od:sqlSType="ntext">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="536870910"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="INCIPIT" minOccurs="0" od:jetType="memo" od:sqlSType="ntext">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="536870910"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="PAGINIERUNG" minOccurs="0" od:jetType="text" od:sqlSType="nvarchar">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="SEITE" minOccurs="0" od:jetType="text" od:sqlSType="nvarchar">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="TYP" minOccurs="0" od:jetType="complex" od:jetComplexType="MSysComplexType_Text" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Value" minOccurs="0" od:jetType="text" od:sqlSType="nvarchar">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DIGITALISAT" minOccurs="1" od:jetType="yesno" od:sqlSType="bit" od:nonNullable="yes" type="xsd:boolean"/>
<xsd:element name="ANMERKUNGEN" minOccurs="0" od:jetType="memo" od:sqlSType="ntext" od:textFormat="1">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="536870910"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

1098
data/Orte.xml Normal file

File diff suppressed because it is too large Load Diff

38
data/Orte.xsd Normal file
View File

@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:od="urn:schemas-microsoft-com:officedata">
<xsd:element name="dataroot">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="Orte" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="generated" type="xsd:dateTime"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Orte">
<xsd:annotation>
<xsd:appinfo>
<od:index index-name="PrimaryKey" index-key="ID " primary="yes" unique="yes" clustered="no" order="asc"/>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ID" minOccurs="1" od:jetType="autonumber" od:sqlSType="int" od:autoUnique="yes" od:nonNullable="yes" type="xsd:int"/>
<xsd:element name="NAME" minOccurs="0" od:jetType="text" od:sqlSType="nvarchar">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="FIKTIV" minOccurs="1" od:jetType="yesno" od:sqlSType="bit" od:nonNullable="yes" type="xsd:boolean"/>
<xsd:element name="Anmerkungen" minOccurs="0" od:jetType="memo" od:sqlSType="ntext">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="536870910"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

12561
data/Reihen.xml Normal file

File diff suppressed because it is too large Load Diff

51
data/Reihen.xsd Normal file
View File

@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:od="urn:schemas-microsoft-com:officedata">
<xsd:element name="dataroot">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="Reihen" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="generated" type="xsd:dateTime"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Reihen">
<xsd:annotation>
<xsd:appinfo>
<od:index index-name="PrimaryKey" index-key="ID " primary="yes" unique="yes" clustered="no" order="asc"/>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ID" minOccurs="1" od:jetType="autonumber" od:sqlSType="int" od:autoUnique="yes" od:nonNullable="yes" type="xsd:int"/>
<xsd:element name="NAME" minOccurs="0" od:jetType="text" od:sqlSType="nvarchar">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="SORTIERNAME" minOccurs="0" od:jetType="text" od:sqlSType="nvarchar">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="NACHWEIS" minOccurs="0" od:jetType="text" od:sqlSType="nvarchar">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="Anmerkungen" minOccurs="0" od:jetType="memo" od:sqlSType="ntext" od:textFormat="1">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="536870910"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

Binary file not shown.

After

Width:  |  Height:  |  Size: 845 KiB

BIN
data/Static-Bilder/1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 855 KiB

BIN
data/Static-Bilder/2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 KiB

BIN
data/Static-Bilder/3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 949 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 MiB

View File

@@ -0,0 +1,51 @@
# Alm_des_Muses_frgst_JB.png
## Almanach des Muses
### Trotz wechselhafter Zeiten erschien der <em>Almanach des Muses ou Choix des Poésies fugitives</em> von 17651833 beinahe ohne Unterbrechung mit dem Konzept, ein Panorama der zeitgenössischen Dichtung zu liefern, wurde er er zum Vorbild für die ersten Musenalmanache in Deutschland.
# Alm_des_Pros_frgst_JB.png
## Almanach des Prosateurs
### In Abrenzung vom <em>Almanach des Muses</em>, der sich auf Lyrik konzentrierte, versammelte der <em>Almanach des Prosateurs</em> auschließlich Prosastücke auch um den publizistischen Rang dieser Gattung neben der Poesie zu behaupten. Die abgebildeten Exemplare stammen aus der Privatbibliothek Georg Augusts von Mecklenburg, der als General in russischen Diensten stand.
# Kotzebue_Thea_frgst_JB.png
## Almanach dramatischer Spiele
### Bis zu seiner Ermordung war Kotzebue Herausgeber und einziger Beiträger dieses Almanachs, der sich mit seinen dramatischen Stücken explizit an Dilettanten- und Liebhabertheater wandte. Die kolorierten Rollenkupfer geben Fingerzeige für Schauspieler und Requisite.
# Apo_und_Schk_frgst_JB.png
## TB für Scheidekünstler und Apotheker
### Taschenbücher waren nicht ausschließlich dem Schöngeistigen gewidmet. Das <em>Taschenbuch für Scheidekünstler und Apotheker</em> gab u. a. Anleitung zur Herstellung von Berliner Blau und zum feuerfesten Ausbessern von gesprungenem Porzellan und Glas.
# Gött. MA, Alm d d M 1770 MS.png
## Göttinger MA und Alm d. dt. Musen
### Als erster deutscher Musenalmanach erschien der Göttinger Musenalmanach zur Leipziger Michaelismesse. Zeitgleich erschien der Almanach der deutschen Musen in Leipzig unter Verwendung von 18 Gedichten aus dem Göttinger Musenalmanach: Schon vor Drucklegung waren Bögen entwendet und samt Druckfehlern übernommen worden.
# 1770ff_freigestellt_JB.png
## 1770ff
### Die ersten Jahrgänge der beiden ersten deutschen Musenalmanache. Der Göttinger Musenalmanach erschien in 35 Jahrgängen 1770-1804. Der Almanach der deutschen Musen (Leipzig) erschien 1770-1881.
# Miniaturformat1.png
## Miniaturformate
### In Karlsruhe und Wien erschienen, als Ausweis drucktechnischer und buchmacherrischer Finesse, einige Almanache im Kleinstformat
# Forst-, Jagd-, Garten- TBs MS.png
## Forst, Jagd, Garten
### Sprachlich reizvoll und mit kolorierten Illustrationen und Plänen reich ausgestattet richten sich die Jagd-, Forst und Gartenalmanache an Fachleute und ein interessiertes Lesepublikum.
# TB z ges. Vergn.png
## Taschenbuch der Liebe und Freundschaft
### Das <em>Taschenbuch der Liebe und Freundschaft</em> erschien bei Wilmans in Bremen 1800-1802 dann in Frankfurt 1803-1841 und gehört zu den langlebigsten Reihen. Es konnte, vor allem unter dem Herausgeber Stephan Schütze 1811-1839 eine reizvolle Gestaltung und literarisches Niveau halten.
# urania-freigestellt.png
## Urania
### 1810-1848 erschien bei Brockhaus in Amsterdam, dann in Leipzig die Urania. Die ersten Jahrgänge gab Johanne Caroline Wilhelmine Spazier heraus, es folgte 1812 bis 1824 Johann Arnold Brockhaus. Über Jahre hielt das Taschenbuch ein hohes Niveau, fiel in den 30er Jahren ab und wurde 1848 eingestellt. Das Taschenbuch in seiner jährlichen Erscheinungsweise klang als Medium aus.
# Wiener Almanache.png
## Wiener Almanache
### Sorgfältige, liebevolle Gestaltung bei wechselhaftem Niveau der literarischen Beiträge zeichnen die Wiener Almanache und Taschenbücher aus.
# 1.jpg
## Taschenbuch zum geselligen Vergnügen
### Eine häufige Beigabe im Taschenbuch zum geselligen Vergnügen waren Tänze (für Klavier gesetzt) mit Tanzanleitungen. Hier: Tanz (Quadrille), Tanzschritte und Tanzanleitung aus dem Jg. 1795
# 3.jpg
## Königl. Großbritannischen Genealogischen Kalender 1784
### Modekupfer, häufig koloriert, waren beliebte Beigaben. Hier ein Beispiel aus dem Königl. Großbritannischen Genealogischen Kalender 1784

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 MiB

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:od="urn:schemas-microsoft-com:officedata">
<xsd:element name="dataroot">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="_x002A_RELATION_BaendeAkteure" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="generated" type="xsd:dateTime"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="_x002A_RELATION_BaendeAkteure">
<xsd:annotation>
<xsd:appinfo>
<od:index index-name="*VOKABULAR_WerkeAkteure*RELATION_BaendeAkteure" index-key="BEZIEHUNG " primary="no" unique="no" clustered="no" order="asc"/>
<od:index index-name="Akteure*RELATION_BaendeAkteure" index-key="AKTEUR " primary="no" unique="no" clustered="no" order="asc"/>
<od:index index-name="Baende*RELATION_BaendeAkteure" index-key="BAND " primary="no" unique="no" clustered="no" order="asc"/>
<od:index index-name="ID" index-key="ID " primary="no" unique="no" clustered="no" order="asc"/>
<od:index index-name="PrimaryKey" index-key="ID " primary="yes" unique="yes" clustered="no" order="asc"/>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ID" minOccurs="1" od:jetType="autonumber" od:sqlSType="int" od:autoUnique="yes" od:nonNullable="yes" type="xsd:int"/>
<xsd:element name="BAND" minOccurs="1" od:jetType="longinteger" od:sqlSType="int" od:nonNullable="yes" type="xsd:int"/>
<xsd:element name="BEZIEHUNG" minOccurs="1" od:jetType="longinteger" od:sqlSType="int" od:nonNullable="yes" type="xsd:int"/>
<xsd:element name="AKTEUR" minOccurs="1" od:jetType="longinteger" od:sqlSType="int" od:nonNullable="yes" type="xsd:int"/>
<xsd:element name="ANMERKUNG" minOccurs="0" od:jetType="memo" od:sqlSType="ntext" od:textFormat="1">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="536870910"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:od="urn:schemas-microsoft-com:officedata">
<xsd:element name="dataroot">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="_x002A_RELATION_BaendeReihen" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="generated" type="xsd:dateTime"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="_x002A_RELATION_BaendeReihen">
<xsd:annotation>
<xsd:appinfo>
<od:index index-name="*VOKABULAR_Reihe*RELATION_BaendeReihen" index-key="BEZIEHUNG " primary="no" unique="no" clustered="no" order="asc"/>
<od:index index-name="Baende*RELATION_BaendeReihen" index-key="BAND " primary="no" unique="no" clustered="no" order="asc"/>
<od:index index-name="ID" index-key="ID " primary="no" unique="no" clustered="no" order="asc"/>
<od:index index-name="PrimaryKey" index-key="ID " primary="yes" unique="yes" clustered="no" order="asc"/>
<od:index index-name="Reihen*RELATION_BaendeReihen" index-key="REIHE " primary="no" unique="no" clustered="no" order="asc"/>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ID" minOccurs="1" od:jetType="autonumber" od:sqlSType="int" od:autoUnique="yes" od:nonNullable="yes" type="xsd:int"/>
<xsd:element name="BAND" minOccurs="0" od:jetType="longinteger" od:sqlSType="int" type="xsd:int"/>
<xsd:element name="BEZIEHUNG" minOccurs="0" od:jetType="longinteger" od:sqlSType="int" type="xsd:int"/>
<xsd:element name="REIHE" minOccurs="0" od:jetType="longinteger" od:sqlSType="int" type="xsd:int"/>
<xsd:element name="ANMERKUNGEN" minOccurs="0" od:jetType="memo" od:sqlSType="ntext" od:textFormat="1">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="536870910"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:od="urn:schemas-microsoft-com:officedata">
<xsd:element name="dataroot">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="_x002A_RELATION_InhalteAkteure" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="generated" type="xsd:dateTime"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="_x002A_RELATION_InhalteAkteure">
<xsd:annotation>
<xsd:appinfo>
<od:index index-name="*VOKABULAR_WerkeAkteure*RELATION_InhaltAkteure" index-key="BEZIEHUNG " primary="no" unique="no" clustered="no" order="asc"/>
<od:index index-name="Akteure*RELATION_InhaltAkteure" index-key="AKTEUR " primary="no" unique="no" clustered="no" order="asc"/>
<od:index index-name="ID" index-key="ID " primary="no" unique="no" clustered="no" order="asc"/>
<od:index index-name="Inhalte*RELATION_InhaltAkteure" index-key="INHALT " primary="no" unique="no" clustered="no" order="asc"/>
<od:index index-name="PrimaryKey" index-key="ID " primary="yes" unique="yes" clustered="no" order="asc"/>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ID" minOccurs="1" od:jetType="autonumber" od:sqlSType="int" od:autoUnique="yes" od:nonNullable="yes" type="xsd:int"/>
<xsd:element name="INHALT" minOccurs="1" od:jetType="longinteger" od:sqlSType="int" od:nonNullable="yes" type="xsd:int"/>
<xsd:element name="BEZIEHUNG" minOccurs="1" od:jetType="longinteger" od:sqlSType="int" od:nonNullable="yes" type="xsd:int"/>
<xsd:element name="AKTEUR" minOccurs="1" od:jetType="longinteger" od:sqlSType="int" od:nonNullable="yes" type="xsd:int"/>
<xsd:element name="ANMERKUNG" minOccurs="0" od:jetType="memo" od:sqlSType="ntext" od:textFormat="1">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="536870910"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

31
data/_VOKABULAR_Reihe.xml Normal file
View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<dataroot xmlns:od="urn:schemas-microsoft-com:officedata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="_VOKABULAR_Reihe.xsd" generated="2024-10-16T13:49:48">
<_x002A_VOKABULAR_Reihe>
<ID>1</ID>
<BEZIEHUNG>ist in der Reihe erschienen</BEZIEHUNG>
</_x002A_VOKABULAR_Reihe>
<_x002A_VOKABULAR_Reihe>
<ID>2</ID>
<BEZIEHUNG>kann auch als Teil der Reihe gelten</BEZIEHUNG>
</_x002A_VOKABULAR_Reihe>
<_x002A_VOKABULAR_Reihe>
<ID>3</ID>
<BEZIEHUNG>auch in französischer Fassung erschienen</BEZIEHUNG>
</_x002A_VOKABULAR_Reihe>
<_x002A_VOKABULAR_Reihe>
<ID>4</ID>
<BEZIEHUNG>ist die fr. Übertragung der Reihe</BEZIEHUNG>
</_x002A_VOKABULAR_Reihe>
<_x002A_VOKABULAR_Reihe>
<ID>5</ID>
<BEZIEHUNG>ist auch unter dem Titel erschienen</BEZIEHUNG>
</_x002A_VOKABULAR_Reihe>
<_x002A_VOKABULAR_Reihe>
<ID>6</ID>
<BEZIEHUNG>ist Titelauflage von</BEZIEHUNG>
</_x002A_VOKABULAR_Reihe>
<_x002A_VOKABULAR_Reihe>
<ID>7</ID>
<BEZIEHUNG>auch als Titelauflage</BEZIEHUNG>
</_x002A_VOKABULAR_Reihe>
</dataroot>

30
data/_VOKABULAR_Reihe.xsd Normal file
View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:od="urn:schemas-microsoft-com:officedata">
<xsd:element name="dataroot">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="_x002A_VOKABULAR_Reihe" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="generated" type="xsd:dateTime"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="_x002A_VOKABULAR_Reihe">
<xsd:annotation>
<xsd:appinfo>
<od:index index-name="PrimaryKey" index-key="ID " primary="yes" unique="yes" clustered="no" order="asc"/>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ID" minOccurs="1" od:jetType="autonumber" od:sqlSType="int" od:autoUnique="yes" od:nonNullable="yes" type="xsd:int"/>
<xsd:element name="BEZIEHUNG" minOccurs="0" od:jetType="text" od:sqlSType="nvarchar">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

View File

@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<dataroot xmlns:od="urn:schemas-microsoft-com:officedata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="_VOKABULAR_WerkeAkteure.xsd" generated="2024-10-16T13:49:48">
<_x002A_VOKABULAR_WerkeAkteure>
<ID>1</ID>
<Beziehung>wurde geschaffen von</Beziehung>
</_x002A_VOKABULAR_WerkeAkteure>
<_x002A_VOKABULAR_WerkeAkteure>
<ID>2</ID>
<Beziehung>wurde geschrieben von</Beziehung>
</_x002A_VOKABULAR_WerkeAkteure>
<_x002A_VOKABULAR_WerkeAkteure>
<ID>3</ID>
<Beziehung>wurde gezeichnet von</Beziehung>
</_x002A_VOKABULAR_WerkeAkteure>
<_x002A_VOKABULAR_WerkeAkteure>
<ID>4</ID>
<Beziehung>wurde gestochen von</Beziehung>
</_x002A_VOKABULAR_WerkeAkteure>
<_x002A_VOKABULAR_WerkeAkteure>
<ID>5</ID>
<Beziehung>wurde herausgegeben von</Beziehung>
</_x002A_VOKABULAR_WerkeAkteure>
<_x002A_VOKABULAR_WerkeAkteure>
<ID>6</ID>
<Beziehung>wurde verlegt von</Beziehung>
</_x002A_VOKABULAR_WerkeAkteure>
<_x002A_VOKABULAR_WerkeAkteure>
<ID>7</ID>
<Beziehung>wurde gedruckt von</Beziehung>
</_x002A_VOKABULAR_WerkeAkteure>
<_x002A_VOKABULAR_WerkeAkteure>
<ID>8</ID>
<Beziehung>wurde vertrieben von</Beziehung>
</_x002A_VOKABULAR_WerkeAkteure>
<_x002A_VOKABULAR_WerkeAkteure>
<ID>9</ID>
<Beziehung>wurde gemalt von</Beziehung>
</_x002A_VOKABULAR_WerkeAkteure>
</dataroot>

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:od="urn:schemas-microsoft-com:officedata">
<xsd:element name="dataroot">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="_x002A_VOKABULAR_WerkeAkteure" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="generated" type="xsd:dateTime"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="_x002A_VOKABULAR_WerkeAkteure">
<xsd:annotation>
<xsd:appinfo>
<od:index index-name="PrimaryKey" index-key="ID " primary="yes" unique="yes" clustered="no" order="asc"/>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ID" minOccurs="1" od:jetType="autonumber" od:sqlSType="int" od:autoUnique="yes" od:nonNullable="yes" type="xsd:int"/>
<xsd:element name="Beziehung" minOccurs="0" od:jetType="text" od:sqlSType="nvarchar">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

54
data/abkuerzungen.txt Normal file
View File

@@ -0,0 +1,54 @@
ar: arabische Paginierung
ar1: arabische Paginierung
ar2: zweite arabische Paginierung
ar3: dritte arabische Paginierung
ar4: vierte arabische Paginierung
ar5: fünfte arabische Paginierung
ar6: sechste arabische Paginierung
ar7: siebte arabische Paginierung
B: Blatt
BB: Blätter
C: Corrigenda
Diagr: Diagramm
G: Graphik
GG: Graphiken
UG: Umschlaggraphik
UG r: Umschlaggraphik recto
UG v: Umschlaggraphik verso
TG: Titelgraphik, Titelportrait etc
TG v: Titelgraphik, Titelportrait etc verso
TG r: Titelgraphik, Titelportrait etc recto
gA: graphische Anleitung
gTzA: graphische Tanzanleitung
G-Verz: Verzeichnis der Kupfer u. ä.
Hrsg: Herausgeber
I-Verz: Inhaltsverzeichnis
Kal: Kalendarium
Kr: Karte
MusB: Musikbeigabe
MusBB: Musikbeigaben
röm: römische Paginierung
röm1: römische Paginierung
röm2: zweite römische Paginierung
röm3: dritte römische Paginierung
röm4: vierte römische Paginierung
röm5: fünfte römische Paginierung
röm6: sechste römische Paginierung
röm7: siebte römische Paginierung
S: Seite
SS: Seiten
Sp: Spiegel
T: Titel
gT: graphischer Titel
vT: Vortitel
nT: Nachtitel
zT: Zwischentitel
Tab: Tabelle
VB: Vorsatzblatt
Vf: Verfasser
VrlgM: Verlagsmitteilung
Vrwrt: Vorwort
#: Hinweis auf weitere Informationen in der Anmerkung.
§§: Hinweis auf Mängel im Almanach (Beschädigungen, fehlende Graphiken od. Beiträge, unvollständige Sammlungen etc) in der Anmerkung
+++: Inhalte aus mehreren Almanachen interpoliert
$: vermutlich

1144
data/claude/Akteure.txt Normal file

File diff suppressed because it is too large Load Diff

112
data/claude/Baende.txt Normal file
View File

@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="UTF-8"?>
<dataroot xmlns:od="urn:schemas-microsoft-com:officedata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Baende.xsd" generated="2024-02-23T17:08:36">
<Baende>
<ID>4853</ID>
<BIBLIO-ID>411407</BIBLIO-ID>
<TITEL>&lt;div&gt;Kinder-Kalender / ein nützliches und unterhaltendes Jahrbuch / für / Knaben und Mädchen. / Dritter Jahrgang. / 1848. / Wien. / Bey Franz Riedl&apos;s sel. Witwe &amp;amp; Sohn&lt;/div&gt;</TITEL>
<ORT-ALT>Wien (Riedl)</ORT-ALT>
<JAHR>1848</JAHR>
<HERAUSGEBER>unbezeichnet</HERAUSGEBER>
<AUTOPSIE>0</AUTOPSIE>
<ERFASST>0</ERFASST>
<STATUS>
<Value>Original vorhanden</Value>
</STATUS>
<NACHWEIS>nicht bei K; L/R 165;</NACHWEIS>
<ANMERKUNGEN>&lt;div&gt;KVK ÖNB 1846-1848&lt;/div&gt;</ANMERKUNGEN>
<REIHENTITEL-ALT>Kinder-Kalender (Wien, Riedl) 1848</REIHENTITEL-ALT>
<ORTE>
<Value>215</Value>
</ORTE>
</Baende>
<Baende>
<ID>4850</ID>
<BIBLIO-ID>0</BIBLIO-ID>
<JAHR>0</JAHR>
<AUTOPSIE>0</AUTOPSIE>
<ERFASST>0</ERFASST>
<REIHENTITEL-ALT>Taschenbuch, Philosophisches für denkende Gottesverehrer 1799</REIHENTITEL-ALT>
</Baende>
<Baende>
<ID>4851</ID>
<BIBLIO-ID>0</BIBLIO-ID>
<JAHR>0</JAHR>
<AUTOPSIE>0</AUTOPSIE>
<ERFASST>0</ERFASST>
<REIHENTITEL-ALT>Kalender, Freyburger 1813</REIHENTITEL-ALT>
</Baende>
<Baende>
<ID>4852</ID>
<BIBLIO-ID>0</BIBLIO-ID>
<JAHR>0</JAHR>
<AUTOPSIE>0</AUTOPSIE>
<ERFASST>0</ERFASST>
<REIHENTITEL-ALT>Taschenbuch für Tollhäusler 1808</REIHENTITEL-ALT>
</Baende>
<Baende>
<ID>77</ID>
<BIBLIO-ID>110579</BIBLIO-ID>
<SORTIERTITEL>MusenAlmanach / in Sardonica / Vestalis / ex Mus. Walmod. / A MDCCLXXVI / Göttingen, bey J. C. Dieterich</SORTIERTITEL>
<TITEL>MusenAlmanach / in Sardonica / Vestalis / ex Mus. Walmod. / A MDCCLXXVI / Göttingen, bey J. C. Dieterich</TITEL>
<ORT-ALT>Göttingen (J. C. Dieterich)</ORT-ALT>
<JAHR>1776</JAHR>
<HERAUSGEBER>unbezeichnet</HERAUSGEBER>
<AUTOPSIE>1</AUTOPSIE>
<ERFASST>1</ERFASST>
<STATUS>
<Value>Original vorhanden</Value>
</STATUS>
<NACHWEIS>K 84; L/R 24; Goed IV/1. 946, 3</NACHWEIS>
<STRUKTUR>gT, recto G, nT, SS 1-192 darin 5 MusBB, 7 SS I-Verz u C</STRUKTUR>
<NORM>~+++ Kal Reprint Hildesheim, New York (Olms) 1979</NORM>
<ANMERKUNGEN>bibliophiles Ex zusammengebunden mit Jg 1775 (vielleicht aus Goethes Bibliothek)</ANMERKUNGEN>
<REIHENTITEL-ALT>Musenalmanach (Göttinger) 1776</REIHENTITEL-ALT>
<ORTE>
<Value>78</Value>
</ORTE>
</Baende>
<Baende>
<ID>78</ID>
<BIBLIO-ID>101029</BIBLIO-ID>
<SORTIERTITEL>Musen Almanach / in Sardonica / Vestalis / ex Mus. Walmod. / A MDCCLXXVII / Göttingen, bey J. C. Dieterich</SORTIERTITEL>
<TITEL>Musen Almanach / in Sardonica / Vestalis / ex Mus. Walmod. / A MDCCLXXVII / Göttingen, bey J. C. Dieterich</TITEL>
<ORT-ALT>Göttingen (J. C. Dieterich)</ORT-ALT>
<JAHR>1777</JAHR>
<HERAUSGEBER>Göckingk</HERAUSGEBER>
<AUTOPSIE>1</AUTOPSIE>
<ERFASST>1</ERFASST>
<STATUS>
<Value>Original vorhanden</Value>
</STATUS>
<NACHWEIS>K 84; L/R 24; Goed IV/1. 946, 3</NACHWEIS>
<STRUKTUR>VB, gT, 14 BB Kal, nT, SS 1-208 darin 10 MusBB, 6 SS I-Verz, 3 SS Anm d Hrsg u VrlgM</STRUKTUR>
<NORM>~</NORM>
<ANMERKUNGEN>Das sonst beigegebene Titelportrait fehlt; s. Anm. am Ende des Almanachs: Eine Verzögerung, woran weder Herausgeber noch Verleger Schuld sind, hat gemacht, daß dießmal kein Portrait vor dem Alamanch steht.</ANMERKUNGEN>
<REIHENTITEL-ALT>Musenalmanach (Göttinger) 1777</REIHENTITEL-ALT>
<ORTE>
<Value>78</Value>
</ORTE>
</Baende>
<Baende>
<ID>79</ID>
<BIBLIO-ID>101030</BIBLIO-ID>
<SORTIERTITEL>Musen Almanach / in Sardonica / Vestalis / ex Mus. Walmod. / A MDCCLXXVIII / Göttingen, bey J. C. Dieterich</SORTIERTITEL>
<TITEL>Musen Almanach / in Sardonica / Vestalis / ex Mus. Walmod. / A MDCCLXXVIII / Göttingen, bey J. C. Dieterich</TITEL>
<ORT-ALT>Göttingen (J. C. Dieterich)</ORT-ALT>
<JAHR>1778</JAHR>
<HERAUSGEBER>Goeckingk</HERAUSGEBER>
<AUTOPSIE>1</AUTOPSIE>
<ERFASST>1</ERFASST>
<STATUS>
<Value>Original vorhanden</Value>
</STATUS>
<NACHWEIS>K 84; L/R 24; Goed IV/1. 946, 3</NACHWEIS>
<STRUKTUR>VB, verso G, gT, nT, 2 SS, 14 BB Kal, SS 1-160 darin 6 MusBB, 4 SS I-Verz, 2 SS Anm d Hrsg, S VrlgM; S C</STRUKTUR>
<NORM>~</NORM>
<REIHENTITEL-ALT>Musenalmanach (Göttinger) 1778</REIHENTITEL-ALT>
<ORTE>
<Value>78</Value>
<Value>77</Value>
</ORTE>
</Baende>
</dataroot>

25
data/claude/Orte.txt Normal file
View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<dataroot xmlns:od="urn:schemas-microsoft-com:officedata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Orte.xsd" generated="2024-02-23T17:11:26">
<Orte>
<ID>2</ID>
<NAME>[Emden]</NAME>
<FIKTIV>0</FIKTIV>
</Orte>
<Orte>
<ID>3</ID>
<NAME>[Gera]</NAME>
<FIKTIV>0</FIKTIV>
</Orte>
<Orte>
<ID>77</ID>
<NAME>Gotha</NAME>
<FIKTIV>0</FIKTIV>
</Orte>
<Orte>
<ID>78</ID>
<NAME>Göttingen</NAME>
<FIKTIV>0</FIKTIV>
</Orte>
<Orte>
</dataroot>

12
data/claude/Reihen.txt Normal file
View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<dataroot xmlns:od="urn:schemas-microsoft-com:officedata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Reihen.xsd" generated="2024-02-23T17:08:35">
<Reihen>
<ID>1208</ID>
<NAME>Abendstunden</NAME>
<SORTIERNAME>Abendstunden</SORTIERNAME>
<NACHWEIS>K 5; nicht bei L/R; Goed VIII. 101, 225</NACHWEIS>
<Anmerkungen>&lt;div&gt;Jgg 1820 (in zwei Bänden), 1823&lt;/div&gt;
&lt;div&gt;Leipzig (Gleditsch)&lt;/div&gt;</Anmerkungen>
</Reihen>
</dataroot>

View File

@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<dataroot xmlns:od="urn:schemas-microsoft-com:officedata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="_RELATION_BaendeAkteure.xsd" generated="2024-02-23T17:08:20">
<_x002A_RELATION_BaendeAkteure>
<ID>1</ID>
<BAND>185</BAND>
<BEZIEHUNG>5</BEZIEHUNG>
<AKTEUR>2481</AKTEUR>
</_x002A_RELATION_BaendeAkteure>
<_x002A_RELATION_BaendeAkteure>
<ID>2</ID>
<BAND>186</BAND>
<BEZIEHUNG>5</BEZIEHUNG>
<AKTEUR>2481</AKTEUR>
</_x002A_RELATION_BaendeAkteure>
<_x002A_RELATION_BaendeAkteure>
<ID>3</ID>
<BAND>187</BAND>
<BEZIEHUNG>5</BEZIEHUNG>
<AKTEUR>2481</AKTEUR>
</_x002A_RELATION_BaendeAkteure>
<_x002A_RELATION_BaendeAkteure>
<ID>4</ID>
<BAND>188</BAND>
<BEZIEHUNG>5</BEZIEHUNG>
<AKTEUR>2481</AKTEUR>
</_x002A_RELATION_BaendeAkteure>
<_x002A_RELATION_BaendeAkteure>
<ID>5</ID>
<BAND>189</BAND>
<BEZIEHUNG>5</BEZIEHUNG>
<AKTEUR>2481</AKTEUR>
</_x002A_RELATION_BaendeAkteure>
<_x002A_RELATION_BaendeAkteure>
<ID>6</ID>
<BAND>190</BAND>
<BEZIEHUNG>5</BEZIEHUNG>
<AKTEUR>2481</AKTEUR>
</_x002A_RELATION_BaendeAkteure>
<_x002A_RELATION_BaendeAkteure>
<ID>7</ID>
<BAND>191</BAND>
<BEZIEHUNG>5</BEZIEHUNG>
<AKTEUR>2116</AKTEUR>
</_x002A_RELATION_BaendeAkteure>
<_x002A_RELATION_BaendeAkteure>
<ID>8</ID>
<BAND>192</BAND>
<BEZIEHUNG>5</BEZIEHUNG>
<AKTEUR>2116</AKTEUR>
</_x002A_RELATION_BaendeAkteure>
<_x002A_RELATION_BaendeAkteure>
<ID>9</ID>
<BAND>194</BAND>
<BEZIEHUNG>5</BEZIEHUNG>
<AKTEUR>2116</AKTEUR>
</_x002A_RELATION_BaendeAkteure>
<_x002A_RELATION_BaendeAkteure>
<ID>10</ID>
<BAND>195</BAND>
<BEZIEHUNG>5</BEZIEHUNG>
<AKTEUR>2116</AKTEUR>
</_x002A_RELATION_BaendeAkteure>
<_x002A_RELATION_BaendeAkteure>
<ID>11</ID>
<BAND>196</BAND>
<BEZIEHUNG>5</BEZIEHUNG>
<AKTEUR>2116</AKTEUR>
</_x002A_RELATION_BaendeAkteure>
<_x002A_RELATION_BaendeAkteure>
<ID>12</ID>
<BAND>197</BAND>
<BEZIEHUNG>5</BEZIEHUNG>
<AKTEUR>1885</AKTEUR>
</_x002A_RELATION_BaendeAkteure>
<_x002A_RELATION_BaendeAkteure>
<ID>13</ID>
<BAND>198</BAND>
<BEZIEHUNG>5</BEZIEHUNG>
<AKTEUR>2116</AKTEUR>
</_x002A_RELATION_BaendeAkteure>
</dataroot>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<dataroot xmlns:od="urn:schemas-microsoft-com:officedata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="_RELATION_BaendeReihen.xsd" generated="2024-02-23T17:08:21">
<_x002A_RELATION_BaendeReihen>
<ID>1</ID>
<BAND>3026</BAND>
<BEZIEHUNG>1</BEZIEHUNG>
<REIHE>2191</REIHE>
</_x002A_RELATION_BaendeReihen>
<_x002A_RELATION_BaendeReihen>
<ID>2</ID>
<BAND>3633</BAND>
<BEZIEHUNG>1</BEZIEHUNG>
<REIHE>2190</REIHE>
</_x002A_RELATION_BaendeReihen>
<_x002A_RELATION_BaendeReihen>
<ID>3</ID>
<BAND>3632</BAND>
<BEZIEHUNG>1</BEZIEHUNG>
<REIHE>2189</REIHE>
</_x002A_RELATION_BaendeReihen>
</dataroot>

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<dataroot xmlns:od="urn:schemas-microsoft-com:officedata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="_VOKABULAR_Reihe.xsd" generated="2024-02-23T17:08:20">
<_x002A_VOKABULAR_Reihe>
<ID>1</ID>
<BEZIEHUNG>ist in der Reihe erschienen</BEZIEHUNG>
</_x002A_VOKABULAR_Reihe>
<_x002A_VOKABULAR_Reihe>
<ID>2</ID>
<BEZIEHUNG>kann auch als Teil der Reihe gelten</BEZIEHUNG>
</_x002A_VOKABULAR_Reihe>
<_x002A_VOKABULAR_Reihe>
<ID>3</ID>
<BEZIEHUNG>auch in französischer Fassung erschienen</BEZIEHUNG>
</_x002A_VOKABULAR_Reihe>
<_x002A_VOKABULAR_Reihe>
<ID>4</ID>
<BEZIEHUNG>ist die fr. Übertragung der Reihe</BEZIEHUNG>
</_x002A_VOKABULAR_Reihe>
<_x002A_VOKABULAR_Reihe>
<ID>5</ID>
<BEZIEHUNG>ist auch unter dem Titel erschienen</BEZIEHUNG>
</_x002A_VOKABULAR_Reihe>
<_x002A_VOKABULAR_Reihe>
<ID>6</ID>
<BEZIEHUNG>ist Titelauflage von</BEZIEHUNG>
</_x002A_VOKABULAR_Reihe>
<_x002A_VOKABULAR_Reihe>
<ID>7</ID>
<BEZIEHUNG>auch als Titelauflage</BEZIEHUNG>
</_x002A_VOKABULAR_Reihe>
</dataroot>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<dataroot xmlns:od="urn:schemas-microsoft-com:officedata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="_VOKABULAR_WerkeAkteure.xsd" generated="2024-02-23T17:08:20">
<_x002A_VOKABULAR_WerkeAkteure>
<ID>1</ID>
<Beziehung>wurde geschaffen von</Beziehung>
</_x002A_VOKABULAR_WerkeAkteure>
<_x002A_VOKABULAR_WerkeAkteure>
<ID>2</ID>
<Beziehung>wurde geschrieben von</Beziehung>
</_x002A_VOKABULAR_WerkeAkteure>
<_x002A_VOKABULAR_WerkeAkteure>
<ID>3</ID>
<Beziehung>wurde gezeichnet von</Beziehung>
</_x002A_VOKABULAR_WerkeAkteure>
<_x002A_VOKABULAR_WerkeAkteure>
<ID>4</ID>
<Beziehung>wurde gestochen von</Beziehung>
</_x002A_VOKABULAR_WerkeAkteure>
<_x002A_VOKABULAR_WerkeAkteure>
<ID>5</ID>
<Beziehung>wurde herausgegeben von</Beziehung>
</_x002A_VOKABULAR_WerkeAkteure>
<_x002A_VOKABULAR_WerkeAkteure>
<ID>6</ID>
<Beziehung>wurde verlegt von</Beziehung>
</_x002A_VOKABULAR_WerkeAkteure>
<_x002A_VOKABULAR_WerkeAkteure>
<ID>7</ID>
<Beziehung>wurde gedruckt von</Beziehung>
</_x002A_VOKABULAR_WerkeAkteure>
<_x002A_VOKABULAR_WerkeAkteure>
<ID>8</ID>
<Beziehung>wurde vertrieben von</Beziehung>
</_x002A_VOKABULAR_WerkeAkteure>
</dataroot>

224
data/rtansfer.py Normal file
View File

@@ -0,0 +1,224 @@
import xml.etree.ElementTree as ET
from xml.dom import minidom
import re
import sys
def create_zotero_rdf():
rdf = ET.Element('rdf:RDF')
rdf.set('xmlns:rdf', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#')
rdf.set('xmlns:z', 'http://www.zotero.org/namespaces/export#')
rdf.set('xmlns:dc', 'http://purl.org/dc/elements/1.1/')
rdf.set('xmlns:vcard', 'http://nwalsh.com/rdf/vCard#')
rdf.set('xmlns:foaf', 'http://xmlns.com/foaf/0.1/')
rdf.set('xmlns:bib', 'http://purl.org/net/biblio#')
rdf.set('xmlns:dcterms', 'http://purl.org/dc/terms/')
return rdf
def create_actor_element(akteur):
if akteur.find('ORGANISATION') is not None and akteur.find('ORGANISATION').text == '1':
actor = ET.Element('foaf:Organization')
name = ET.SubElement(actor, 'foaf:name')
name.text = akteur.find('NAME').text if akteur.find('NAME') is not None else "Unknown Organization"
else:
actor = ET.Element('foaf:Person')
surname = ET.SubElement(actor, 'foaf:surname')
full_name = akteur.find('NAME').text if akteur.find('NAME') is not None else "Unknown Person"
surname.text = full_name.split(', ')[0] if ', ' in full_name else full_name
if ', ' in full_name:
given_name = ET.SubElement(actor, 'foaf:givenName')
given_name.text = full_name.split(', ')[1]
return actor
def create_memo(book_id, content, index):
memo = ET.Element('bib:Memo')
memo.set('rdf:about', f'#item_{book_id}_memo_{index}')
value = ET.SubElement(memo, 'rdf:value')
value.text = f'<div data-schema-version="9"><p>{content}</p></div>'
return memo
def create_book_entry(band, akteure, relationships, orte, vocabular, relationships_reihen, reihen, vocabular_reihe, zotero_rdf):
if band.find('TITEL') is None or not band.find('TITEL').text:
return None
book_id = band.find('ID').text if band.find('ID') is not None else "unknown"
book = ET.Element('bib:Book')
book.set('rdf:about', f'#item_{book_id}')
# Add item type
item_type = ET.SubElement(book, 'z:itemType')
item_type.text = 'book'
# Add title
title = ET.SubElement(book, 'dc:title')
title.text = band.find('TITEL').text if band.find('TITEL') is not None else "Unknown Title"
# Add year
year = ET.SubElement(book, 'dc:date')
year.text = band.find('JAHR').text if band.find('JAHR') is not None else ""
# Add editors
editors = ET.SubElement(book, 'bib:editors')
editors_seq = ET.SubElement(editors, 'rdf:Seq')
# Process relationships
for relation in relationships:
if relation.find('BAND') is not None and relation.find('BAND').text == book_id:
akteur_id = relation.find('AKTEUR').text if relation.find('AKTEUR') is not None else None
beziehung_id = relation.find('BEZIEHUNG').text if relation.find('BEZIEHUNG') is not None else None
akteur = next((a for a in akteure if a.find('ID') is not None and a.find('ID').text == akteur_id), None)
beziehung = next((v for v in vocabular if v.find('ID') is not None and v.find('ID').text == beziehung_id), None)
if akteur is not None and beziehung is not None and beziehung.find('Beziehung') is not None:
actor_element = create_actor_element(akteur)
if beziehung.find('Beziehung').text == 'wurde herausgegeben von':
editor_li = ET.SubElement(editors_seq, 'rdf:li')
editor_li.append(actor_element)
elif beziehung.find('Beziehung').text == 'wurde verlegt von':
publisher = ET.SubElement(book, 'dc:publisher')
publisher.append(actor_element)
# Add place of publication
ort_id = band.find('ORTE/Value').text if band.find('ORTE/Value') is not None else None
if ort_id:
ort = next((o for o in orte if o.find('ID') is not None and o.find('ID').text == ort_id), None)
if ort is not None and ort.find('NAME') is not None:
publisher = book.find('dc:publisher')
if publisher is None:
publisher = ET.SubElement(book, 'dc:publisher')
org = ET.SubElement(publisher, 'foaf:Organization')
else:
org = publisher.find('foaf:Organization')
if org is None:
org = ET.SubElement(publisher, 'foaf:Organization')
adr = ET.SubElement(org, 'vcard:adr')
address = ET.SubElement(adr, 'vcard:Address')
locality = ET.SubElement(address, 'vcard:locality')
locality.text = ort.find('NAME').text
# Add series information
for relation in relationships_reihen:
if relation.find('BAND') is not None and relation.find('BAND').text == book_id:
reihe_id = relation.find('REIHE').text if relation.find('REIHE') is not None else None
beziehung_id = relation.find('BEZIEHUNG').text if relation.find('BEZIEHUNG') is not None else None
reihe = next((r for r in reihen if r.find('ID') is not None and r.find('ID').text == reihe_id), None)
beziehung = next((v for v in vocabular_reihe if v.find('ID') is not None and v.find('ID').text == beziehung_id), None)
if reihe is not None and beziehung is not None and reihe.find('NAME') is not None:
series = ET.SubElement(book, 'dcterms:isPartOf')
series_element = ET.SubElement(series, 'bib:Series')
series_title = ET.SubElement(series_element, 'dc:title')
series_title.text = reihe.find('NAME').text
# Add STRUKTUR to z:numPages
if band.find('STRUKTUR') is not None and band.find('STRUKTUR').text:
num_pages = ET.SubElement(book, 'z:numPages')
num_pages.text = band.find('STRUKTUR').text
# Add description
description = ET.SubElement(book, 'dcterms:abstract')
desc_parts = []
# Handle STATUS
status = band.find('STATUS/Value')
if status is not None and status.text:
desc_parts.append(f"Status: {status.text}")
# Handle NACHWEIS
nachweis = band.find('NACHWEIS')
if nachweis is not None and nachweis.text:
desc_parts.append(f"Nachweis: {nachweis.text}")
# Handle BIBLIO-ID
biblio_id = band.find('BIBLIO-ID')
if biblio_id is not None and biblio_id.text:
desc_parts.append(f"BIBLIO-ID: {biblio_id.text}")
description.text = "\n".join(desc_parts)
# Add language
language = ET.SubElement(book, 'z:language')
language.text = 'Deutsch' # Assuming the language is German
# Add Anmerkungen as Memos
if band.find('ANMERKUNGEN') is not None and band.find('ANMERKUNGEN').text:
anmerkungen = band.find('ANMERKUNGEN').text
# Split Anmerkungen by \) or )\
memo_contents = re.split(r'\\\)|\)\\\s*', anmerkungen)
for i, content in enumerate(memo_contents):
if content.strip(): # Only create memo if content is not empty
memo = create_memo(book_id, content.strip(), i)
zotero_rdf.append(memo)
# Add reference to the memo in the book entry
is_referenced_by = ET.SubElement(book, 'dcterms:isReferencedBy')
is_referenced_by.set('rdf:resource', f'#item_{book_id}_memo_{i}')
return book
def transform_xml(baende_file, akteure_file, relations_file, orte_file, vocabular_file, reihen_file, relations_reihen_file, vocabular_reihe_file, output_file):
xml_string = ""
try:
# Parse all XML files
baende_tree = ET.parse(baende_file)
akteure_tree = ET.parse(akteure_file)
relations_tree = ET.parse(relations_file)
orte_tree = ET.parse(orte_file)
vocabular_tree = ET.parse(vocabular_file)
reihen_tree = ET.parse(reihen_file)
relations_reihen_tree = ET.parse(relations_reihen_file)
vocabular_reihe_tree = ET.parse(vocabular_reihe_file)
baende = baende_tree.getroot().findall('Baende')
akteure = akteure_tree.getroot().findall('Akteure')
relationships = relations_tree.getroot().findall('_x002A_RELATION_BaendeAkteure')
orte = orte_tree.getroot().findall('Orte')
vocabular = vocabular_tree.getroot().findall('_x002A_VOKABULAR_WerkeAkteure')
reihen = reihen_tree.getroot().findall('Reihen')
relationships_reihen = relations_reihen_tree.getroot().findall('_x002A_RELATION_BaendeReihen')
vocabular_reihe = vocabular_reihe_tree.getroot().findall('_x002A_VOKABULAR_Reihe')
# Create the Zotero RDF
zotero_rdf = create_zotero_rdf()
# Process each Band
for band in baende:
book_entry = create_book_entry(band, akteure, relationships, orte, vocabular, relationships_reihen, reihen, vocabular_reihe, zotero_rdf)
if book_entry is not None:
zotero_rdf.append(book_entry)
# Create a pretty-printed XML string
xml_string = ET.tostring(zotero_rdf, encoding='unicode')
# For debugging, print the first 1000 characters of the XML string
print("First 1000 characters of XML string:")
print(xml_string[:1000])
pretty_xml = minidom.parseString(xml_string).toprettyxml(indent=" ")
# Write to output file
with open(output_file, 'w', encoding='utf-8') as f:
f.write(pretty_xml)
print(f"Successfully wrote output to {output_file}")
except Exception as e:
print(f"An error occurred: {str(e)}", file=sys.stderr)
if xml_string:
print("XML string at the point of failure:", file=sys.stderr)
print(xml_string[:1000], file=sys.stderr) # Print the first 1000 characters
else:
print("Error occurred before XML string was created.", file=sys.stderr)
raise
# Usage
try:
transform_xml('Baende.xml', 'Akteure.xml', '_RELATION_BaendeAkteure.xml', 'Orte.xml', '_VOKABULAR_WerkeAkteure.xml', 'Reihen.xml', '_RELATION_BaendeReihen.xml', '_VOKABULAR_Reihe.xml', 'zotero_output.rdf')
except Exception as e:
print(f"Script execution failed: {str(e)}", file=sys.stderr)
sys.exit(1)

63
go.mod
View File

@@ -1,3 +1,66 @@
module github.com/Theodor-Springmann-Stiftung/musenalm module github.com/Theodor-Springmann-Stiftung/musenalm
go 1.23.2 go 1.23.2
require github.com/pocketbase/pocketbase v0.25.0
require (
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
github.com/aws/aws-sdk-go-v2 v1.35.0 // indirect
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.8 // indirect
github.com/aws/aws-sdk-go-v2/config v1.29.3 // indirect
github.com/aws/aws-sdk-go-v2/credentials v1.17.56 // indirect
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.26 // indirect
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.56 // indirect
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.30 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.30 // indirect
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2 // indirect
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.30 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.5.4 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.11 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.11 // indirect
github.com/aws/aws-sdk-go-v2/service/s3 v1.75.1 // indirect
github.com/aws/aws-sdk-go-v2/service/sso v1.24.13 // indirect
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.12 // indirect
github.com/aws/aws-sdk-go-v2/service/sts v1.33.11 // indirect
github.com/aws/smithy-go v1.22.2 // indirect
github.com/disintegration/imaging v1.6.2 // indirect
github.com/domodwyer/mailyak/v3 v3.6.2 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
github.com/fatih/color v1.18.0 // indirect
github.com/gabriel-vasile/mimetype v1.4.8 // indirect
github.com/ganigeorgiev/fexpr v0.4.1 // indirect
github.com/go-ozzo/ozzo-validation/v4 v4.3.0 // indirect
github.com/golang-jwt/jwt/v5 v5.2.1 // indirect
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/googleapis/gax-go/v2 v2.14.1 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/mattn/go-colorable v0.1.14 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/ncruces/go-strftime v0.1.9 // indirect
github.com/pocketbase/dbx v1.11.0 // indirect
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
github.com/spf13/cast v1.7.1 // indirect
github.com/spf13/cobra v1.8.1 // indirect
github.com/spf13/pflag v1.0.6 // indirect
go.opencensus.io v0.24.0 // indirect
gocloud.dev v0.40.0 // indirect
golang.org/x/crypto v0.32.0 // indirect
golang.org/x/image v0.23.0 // indirect
golang.org/x/net v0.34.0 // indirect
golang.org/x/oauth2 v0.25.0 // indirect
golang.org/x/sync v0.10.0 // indirect
golang.org/x/sys v0.29.0 // indirect
golang.org/x/text v0.21.0 // indirect
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect
google.golang.org/api v0.219.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250127172529-29210b9bc287 // indirect
google.golang.org/grpc v1.70.0 // indirect
google.golang.org/protobuf v1.36.4 // indirect
modernc.org/libc v1.55.3 // indirect
modernc.org/mathutil v1.7.1 // indirect
modernc.org/memory v1.8.2 // indirect
modernc.org/sqlite v1.34.5 // indirect
)

312
go.sum Normal file
View File

@@ -0,0 +1,312 @@
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.115.0 h1:CnFSK6Xo3lDYRoBKEcAtia6VSC837/ZkJuRduSFnr14=
cloud.google.com/go v0.115.0/go.mod h1:8jIM5vVgoAEoiVxQ/O4BFTfHqulPZgs/ufEzMcFMdWU=
cloud.google.com/go/auth v0.14.0 h1:A5C4dKV/Spdvxcl0ggWwWEzzP7AZMJSEIgrkngwhGYM=
cloud.google.com/go/auth v0.14.0/go.mod h1:CYsoRL1PdiDuqeQpZE0bP2pnPrGqFcOkI0nldEQis+A=
cloud.google.com/go/auth/oauth2adapt v0.2.7 h1:/Lc7xODdqcEw8IrZ9SvwnlLX6j9FHQM74z6cBk9Rw6M=
cloud.google.com/go/auth/oauth2adapt v0.2.7/go.mod h1:NTbTTzfvPl1Y3V1nPpOgl2w6d/FjO7NNUQaWSox6ZMc=
cloud.google.com/go/compute/metadata v0.6.0 h1:A6hENjEsCDtC1k8byVsgwvVcioamEHvZ4j01OwKxG9I=
cloud.google.com/go/compute/metadata v0.6.0/go.mod h1:FjyFAW1MW0C203CEOMDTu3Dk1FlqW3Rga40jzHL4hfg=
cloud.google.com/go/iam v1.1.13 h1:7zWBXG9ERbMLrzQBRhFliAV+kjcRToDTgQT3CTwYyv4=
cloud.google.com/go/iam v1.1.13/go.mod h1:K8mY0uSXwEXS30KrnVb+j54LB/ntfZu1dr+4zFMNbus=
cloud.google.com/go/storage v1.43.0 h1:CcxnSohZwizt4LCzQHWvBf1/kvtHUn7gk9QERXPyXFs=
cloud.google.com/go/storage v1.43.0/go.mod h1:ajvxEa7WmZS1PxvKRq4bq0tFT3vMd502JwstCcYv0Q0=
filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg=
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so=
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
github.com/aws/aws-sdk-go v1.55.5 h1:KKUZBfBoyqy5d3swXyiC7Q76ic40rYcbqH7qjh59kzU=
github.com/aws/aws-sdk-go v1.55.5/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU=
github.com/aws/aws-sdk-go-v2 v1.35.0 h1:jTPxEJyzjSuuz0wB+302hr8Eu9KUI+Zv8zlujMGJpVI=
github.com/aws/aws-sdk-go-v2 v1.35.0/go.mod h1:JgstGg0JjWU1KpVJjD5H0y0yyAIpSdKEq556EI6yOOM=
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.8 h1:zAxi9p3wsZMIaVCdoiQp2uZ9k1LsZvmAnoTBeZPXom0=
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.8/go.mod h1:3XkePX5dSaxveLAYY7nsbsZZrKxCyEuE5pM4ziFxyGg=
github.com/aws/aws-sdk-go-v2/config v1.29.3 h1:a5Ucjxe6iV+LHEBmYA9w40rT5aGxWybx/4l/O/fvJlE=
github.com/aws/aws-sdk-go-v2/config v1.29.3/go.mod h1:pt9z1x12zDiDb4iFLrxoeAKLVCU/Gp9DL/5BnwlY77o=
github.com/aws/aws-sdk-go-v2/credentials v1.17.56 h1:JKMBreKudV+ozx6rZJLvEtiexv48aEdhdC7mXUw9MLs=
github.com/aws/aws-sdk-go-v2/credentials v1.17.56/go.mod h1:S3xRjIHD8HHFgMTz4L56q/7IldfNtGL9JjH/vP3U6DA=
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.26 h1:XMBqBEuZLf8yxtH+mU/uUDyQbN4iD/xv9h6he2+lzhw=
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.26/go.mod h1:d0+wQ/3CYGPuHEfBTPpQdfUX7gjk0/Lxs5Q6KzdEGY8=
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.56 h1:HcdORgkGzutGk89ANc5eKH3X4e2yRj/4L2yOfutGrXo=
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.56/go.mod h1:ieBcO2kMlND/68XrpzLUWI9yc5gsJU8SyFApKO2dpj0=
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.30 h1:+7AzSGNhHoY53di13lvztf9Dyd/9ofzoYGBllkWp3a0=
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.30/go.mod h1:Jxd/FrCny99yURiQiMywgXvBhd7tmgdv6KdlUTNzMSo=
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.30 h1:Ex06eY6I5rO7IX0HalGfa5nGjpBoOsS1Qm3xfjkuszs=
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.30/go.mod h1:AvyEMA9QcX59kFhVizBpIBpEMThUTXssuJe+emBdcGM=
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2 h1:Pg9URiobXy85kgFev3og2CuOZ8JZUBENF+dcgWBaYNk=
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc=
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.30 h1:yQSv0NQ4CRHoki6AcV/Ldoa4/QCMJauZkF23qznBCPQ=
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.30/go.mod h1:jH3z32wDrsducaYX26xnl41ksYFWqjHphIciwIANZkc=
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2 h1:D4oz8/CzT9bAEYtVhSBmFj2dNOtaHOtMKc2vHBwYizA=
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2/go.mod h1:Za3IHqTQ+yNcRHxu1OFucBh0ACZT4j4VQFF0BqpZcLY=
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.5.4 h1:iwk7v5+lUtA0cIQcQM6EyCXtQJZ9MGIWWaf0JKud5UE=
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.5.4/go.mod h1:o9mSr0x1NwImSmP9q38aTUhjYwcDm277YUURBjXcC2I=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.11 h1:5JKQ2J3BBW4ovy6A/5Lwx9SpA6IzgH8jB3bquGZ1NUw=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.11/go.mod h1:VShCk7rfCzK/b9U1aSkzLwcOoaDlYna16482QqEavis=
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.11 h1:P8qJcYGVDswlMkVFhMi7SJmlf0jNA0JRbvE/q2PuXD8=
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.11/go.mod h1:9yp5x5vYwyhnZZ9cKLBxZmrJTGv99C9iVmG7AKeUvdc=
github.com/aws/aws-sdk-go-v2/service/s3 v1.75.1 h1:hbTWOPUgAnPpk5+G1jZjYnq4eKCAePwRJEqLN1Tj7Bg=
github.com/aws/aws-sdk-go-v2/service/s3 v1.75.1/go.mod h1:Mo2xdnRzOyZQkGHEbhOgooG0eIV+GqS/g8LU4B5iftI=
github.com/aws/aws-sdk-go-v2/service/sso v1.24.13 h1:q4pOAKxypbFoUJzOpgo939bF50qb4DgYshiDfcsdN0M=
github.com/aws/aws-sdk-go-v2/service/sso v1.24.13/go.mod h1:G/0PTg7+vQT42ictQGjJhixzTcVZtHFvrN/OeTXrRfQ=
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.12 h1:4sGSGshSSfO1vrcXruPick3ioSf8nhhD6nuB2ni37P4=
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.12/go.mod h1:NHpu/pLOelViA4qxkAFH10VLqh+XeLhZfXDaFyMVgSs=
github.com/aws/aws-sdk-go-v2/service/sts v1.33.11 h1:RIXOjp7Dp4siCYJRwBHUcBdVgOWflSJGlq4ZhMI5Ta0=
github.com/aws/aws-sdk-go-v2/service/sts v1.33.11/go.mod h1:ZR17k9bPKPR8u0IkyA6xVsjr56doNQ4ZB1fs7abYBfE=
github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ=
github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1ei82L+c=
github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4=
github.com/domodwyer/mailyak/v3 v3.6.2 h1:x3tGMsyFhTCaxp6ycgR0FE/bu5QiNp+hetUuCOBXMn8=
github.com/domodwyer/mailyak/v3 v3.6.2/go.mod h1:lOm/u9CyCVWHeaAmHIdF4RiKVxKUT/H5XX10lIKAL6c=
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM=
github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8=
github.com/ganigeorgiev/fexpr v0.4.1 h1:hpUgbUEEWIZhSDBtf4M9aUNfQQ0BZkGRaMePy7Gcx5k=
github.com/ganigeorgiev/fexpr v0.4.1/go.mod h1:RyGiGqmeXhEQ6+mlGdnUleLHgtzzu/VGO2WtJkF5drE=
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
github.com/go-ozzo/ozzo-validation/v4 v4.3.0 h1:byhDUpfEwjsVQb1vBunvIjh2BHQ9ead57VkAEY4V+Es=
github.com/go-ozzo/ozzo-validation/v4 v4.3.0/go.mod h1:2NKgrcHl3z6cJs+3Oo940FPRiTzuqKbvfrL2RxCj6Ew=
github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y=
github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg=
github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk=
github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ=
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw=
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8 h1:FKHo8hFI3A+7w0aUQuYXQ+6EN5stWmeY/AZqtM8xk9k=
github.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo=
github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0=
github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/wire v0.6.0 h1:HBkoIh4BdSxoyo9PveV8giw7ZsaBOvzWKfcg/6MrVwI=
github.com/google/wire v0.6.0/go.mod h1:F4QhpQ9EDIdJ1Mbop/NZBRB+5yrR6qg3BnctaoUk6NA=
github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gTgghdIA6Stxb52D5RnLI1SLyw=
github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA=
github.com/googleapis/gax-go/v2 v2.14.1 h1:hb0FFeiPaQskmvakKu5EbCbpntQn48jyHuvrkurSS/Q=
github.com/googleapis/gax-go/v2 v2.14.1/go.mod h1:Hb/NubMaVM88SrNkvl8X/o8XWwDJEPqouaLeN2IUxoA=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4=
github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pocketbase/dbx v1.11.0 h1:LpZezioMfT3K4tLrqA55wWFw1EtH1pM4tzSVa7kgszU=
github.com/pocketbase/dbx v1.11.0/go.mod h1:xXRCIAKTHMgUCyCKZm55pUOdvFziJjQfXaWKhu2vhMs=
github.com/pocketbase/pocketbase v0.25.0 h1:/4YQq1hd0muvhzbERyUTVNh88N0BCj5diqK0jtLN6k8=
github.com/pocketbase/pocketbase v0.25.0/go.mod h1:tOtOv7f3vJhAiyUluIwV9JPuKeknZRQ9F6uJE3W/ntI=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y=
github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM=
github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o=
github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8=
github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0 h1:r6I7RJCN86bpD/FQwedZ0vSixDpwuWREjW9oRMsmqDc=
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0/go.mod h1:B9yO6b04uB80CzjedvewuqDhxJxi11s7/GtiGa8bAjI=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8=
go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U=
go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg=
go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M=
go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8=
go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4=
go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU=
go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU=
go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ=
go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM=
go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8=
gocloud.dev v0.40.0 h1:f8LgP+4WDqOG/RXoUcyLpeIAGOcAbZrZbDQCUee10ng=
gocloud.dev v0.40.0/go.mod h1:drz+VyYNBvrMTW0KZiBAYEdl8lbNZx+OQ7oQvdrFmSQ=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc=
golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.23.0 h1:HseQ7c2OpPKTPVzNjG5fwJsOTCiiwS4QdsYi5XU6H68=
golang.org/x/image v0.23.0/go.mod h1:wJJBTdLfCCf3tiHa1fNxpZmUI4mmoZvwMCPP0ddoNKY=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4=
golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0=
golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70=
golang.org/x/oauth2 v0.25.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU=
golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY=
golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE=
golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da h1:noIWHXmPHxILtqtCOPIhSt0ABwskkZKjD3bXGnZGpNY=
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90=
google.golang.org/api v0.219.0 h1:nnKIvxKs/06jWawp2liznTBnMRQBEPpGo7I+oEypTX0=
google.golang.org/api v0.219.0/go.mod h1:K6OmjGm+NtLrIkHxv1U3a0qIf/0JOvAHd5O/6AoyKYE=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
google.golang.org/genproto v0.0.0-20240812133136-8ffd90a71988 h1:CT2Thj5AuPV9phrYMtzX11k+XkzMGfRAet42PmoTATM=
google.golang.org/genproto v0.0.0-20240812133136-8ffd90a71988/go.mod h1:7uvplUBj4RjHAxIZ//98LzOvrQ04JBkaixRmCMI29hc=
google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 h1:CkkIfIt50+lT6NHAVoRYEyAvQGFM7xEwXUUywFvEb3Q=
google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576/go.mod h1:1R3kvZ1dtP3+4p4d3G8uJ8rFk/fWlScl38vanWACI08=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250127172529-29210b9bc287 h1:J1H9f+LEdWAfHcez/4cvaVBox7cOYT+IU6rgqj5x++8=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250127172529-29210b9bc287/go.mod h1:8BS3B93F/U1juMFq9+EDk+qOT5CO1R9IzXxG3PTqiRk=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
google.golang.org/grpc v1.70.0 h1:pWFv03aZoHzlRKHWicjsZytKAiYCtNS0dHbXnIdq7jQ=
google.golang.org/grpc v1.70.0/go.mod h1:ofIJqVKDXx/JiXrwr2IG4/zwdH9txy3IlF40RmcJSQw=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
google.golang.org/protobuf v1.36.4 h1:6A3ZDJHn/eNqc1i+IdefRzy/9PokBTPvcqMySR7NNIM=
google.golang.org/protobuf v1.36.4/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
modernc.org/cc/v4 v4.21.4 h1:3Be/Rdo1fpr8GrQ7IVw9OHtplU4gWbb+wNgeoBMmGLQ=
modernc.org/cc/v4 v4.21.4/go.mod h1:HM7VJTZbUCR3rV8EYBi9wxnJ0ZBRiGE5OeGXNA0IsLQ=
modernc.org/ccgo/v4 v4.19.2 h1:lwQZgvboKD0jBwdaeVCTouxhxAyN6iawF3STraAal8Y=
modernc.org/ccgo/v4 v4.19.2/go.mod h1:ysS3mxiMV38XGRTTcgo0DQTeTmAO4oCmJl1nX9VFI3s=
modernc.org/fileutil v1.3.0 h1:gQ5SIzK3H9kdfai/5x41oQiKValumqNTDXMvKo62HvE=
modernc.org/fileutil v1.3.0/go.mod h1:XatxS8fZi3pS8/hKG2GH/ArUogfxjpEKs3Ku3aK4JyQ=
modernc.org/gc/v2 v2.4.1 h1:9cNzOqPyMJBvrUipmynX0ZohMhcxPtMccYgGOJdOiBw=
modernc.org/gc/v2 v2.4.1/go.mod h1:wzN5dK1AzVGoH6XOzc3YZ+ey/jPgYHLuVckd62P0GYU=
modernc.org/libc v1.55.3 h1:AzcW1mhlPNrRtjS5sS+eW2ISCgSOLLNyFzRh/V3Qj/U=
modernc.org/libc v1.55.3/go.mod h1:qFXepLhz+JjFThQ4kzwzOjA/y/artDeg+pcYnY+Q83w=
modernc.org/mathutil v1.7.1 h1:GCZVGXdaN8gTqB1Mf/usp1Y/hSqgI2vAGGP4jZMCxOU=
modernc.org/mathutil v1.7.1/go.mod h1:4p5IwJITfppl0G4sUEDtCr4DthTaT47/N3aT6MhfgJg=
modernc.org/memory v1.8.2 h1:cL9L4bcoAObu4NkxOlKWBWtNHIsnnACGF/TbqQ6sbcI=
modernc.org/memory v1.8.2/go.mod h1:ZbjSvMO5NQ1A2i3bWeDiVMxIorXwdClKE/0SZ+BMotU=
modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4=
modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0=
modernc.org/sortutil v1.2.0 h1:jQiD3PfS2REGJNzNCMMaLSp/wdMNieTbKX920Cqdgqc=
modernc.org/sortutil v1.2.0/go.mod h1:TKU2s7kJMf1AE84OoiGppNHJwvB753OYfNl2WRb++Ss=
modernc.org/sqlite v1.34.5 h1:Bb6SR13/fjp15jt70CL4f18JIN7p7dnMExd+UFnF15g=
modernc.org/sqlite v1.34.5/go.mod h1:YLuNmX9NKs8wRNK2ko1LW1NGYcc9FkBO69JOt1AR9JE=
modernc.org/strutil v1.2.0 h1:agBi9dp1I+eOnxXeiZawM8F4LawKv4NzGWSaLfyeNZA=
modernc.org/strutil v1.2.0/go.mod h1:/mdcBmfOibveCTBxUl5B5l6W+TTH1FXPLHZE6bTosX0=
modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y=
modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=

View File

@@ -0,0 +1,49 @@
package migrations
import (
"github.com/Theodor-Springmann-Stiftung/musenalm/models"
"github.com/pocketbase/pocketbase/core"
m "github.com/pocketbase/pocketbase/migrations"
)
func init() {
m.Register(func(app core.App) error {
places := placesTable()
places.Fields = placesFields(places)
placesIndexes(places)
return app.Save(places)
}, func(app core.App) error {
places, err := app.FindCollectionByNameOrId(models.PLACES_TABLE)
if err != nil {
return nil
}
return app.Delete(places)
})
}
func placesTable() *core.Collection {
collection := core.NewBaseCollection(models.PLACES_TABLE)
setBasicPublicRules(collection)
return collection
}
func placesFields(collection *core.Collection) core.FieldsList {
fields := core.NewFieldsList(
&core.TextField{Name: "name", Required: true, Presentable: true},
&core.BoolField{Name: "fictional", Required: false},
&core.URLField{Name: "registry_domains", Required: false, OnlyDomains: []string{"geonames.org"}},
)
setMusenalmIDField(&fields)
setEditorStateField(&fields)
setNotesAndAnnotationsField(&fields)
return fields
}
func placesIndexes(collection *core.Collection) {
addMusenalmIDIndex(collection)
addIndex(collection, "name", false)
}

View File

@@ -0,0 +1,54 @@
package migrations
import (
"github.com/Theodor-Springmann-Stiftung/musenalm/models"
"github.com/pocketbase/pocketbase/core"
m "github.com/pocketbase/pocketbase/migrations"
)
func init() {
m.Register(func(app core.App) error {
agents := agentsTable()
agents.Fields = agentsFields(agents)
agentsIndexes(agents)
return app.Save(agents)
}, func(app core.App) error {
agents, err := app.FindCollectionByNameOrId(models.AGENTS_TABLE)
if err != nil {
return nil
}
return app.Delete(agents)
})
}
func agentsTable() *core.Collection {
collection := core.NewBaseCollection(models.AGENTS_TABLE)
setBasicPublicRules(collection)
return collection
}
func agentsFields(collection *core.Collection) core.FieldsList {
fields := core.NewFieldsList(
&core.TextField{Name: "name", Required: true, Presentable: true},
&core.BoolField{Name: "corporate_body", Required: false},
&core.BoolField{Name: "fictional", Required: false},
&core.URLField{Name: "registry_domains", Required: false},
&core.TextField{Name: "biographical_data", Required: false, Presentable: true},
&core.TextField{Name: "profession", Required: false},
&core.TextField{Name: "pseudonyms", Required: false},
&core.TextField{Name: "references", Required: false},
)
setMusenalmIDField(&fields)
setEditorStateField(&fields)
setNotesAndAnnotationsField(&fields)
return fields
}
func agentsIndexes(collection *core.Collection) {
addMusenalmIDIndex(collection)
addIndex(collection, "name", false)
}

View File

@@ -0,0 +1,49 @@
package migrations
import (
"github.com/Theodor-Springmann-Stiftung/musenalm/models"
"github.com/pocketbase/pocketbase/core"
m "github.com/pocketbase/pocketbase/migrations"
)
func init() {
m.Register(func(app core.App) error {
series := seriesTable()
series.Fields = seriesFields(series)
seriesIndexes(series)
return app.Save(series)
}, func(app core.App) error {
series, err := app.FindCollectionByNameOrId(models.SERIES_TABLE)
if err != nil {
return nil
}
return app.Delete(series)
})
}
func seriesTable() *core.Collection {
collection := core.NewBaseCollection(models.SERIES_TABLE)
setBasicPublicRules(collection)
return collection
}
func seriesFields(collection *core.Collection) core.FieldsList {
fields := core.NewFieldsList(
&core.TextField{Name: "name", Required: true, Presentable: true},
&core.TextField{Name: "pseudonyms", Required: false},
&core.TextField{Name: "references", Required: false},
)
setMusenalmIDField(&fields)
setEditorStateField(&fields)
setNotesAndAnnotationsField(&fields)
return fields
}
func seriesIndexes(collection *core.Collection) {
addMusenalmIDIndex(collection)
addIndex(collection, "name", false)
}

View File

@@ -0,0 +1,106 @@
package migrations
import (
"errors"
"github.com/Theodor-Springmann-Stiftung/musenalm/models"
"github.com/pocketbase/pocketbase/core"
m "github.com/pocketbase/pocketbase/migrations"
)
func init() {
m.Register(func(app core.App) error {
entries := entriesTable()
fields := entriesFields(entries, app)
if fields == nil {
return errors.New("Could not find places collection")
}
entries.Fields = *fields
entriesIndexes(entries)
return app.Save(entries)
}, func(app core.App) error {
entries, err := app.FindCollectionByNameOrId(models.ENTRIES_TABLE)
if err != nil {
return nil
}
return app.Delete(entries)
})
}
func entriesTable() *core.Collection {
collection := core.NewBaseCollection(models.ENTRIES_TABLE)
setBasicPublicRules(collection)
return collection
}
func entriesFields(collection *core.Collection, app core.App) *core.FieldsList {
places, err := app.FindCollectionByNameOrId(models.PLACES_TABLE)
if err != nil {
return nil
}
fields := core.NewFieldsList(
// Title information
&core.TextField{Name: "preferredtitle", Required: true, Presentable: true},
&core.TextField{Name: "varianttitle", Required: false, Presentable: false},
&core.BoolField{Name: "paralleltitle", Required: false},
// Transcribed information
&core.TextField{Name: "title_statement", Required: false, Presentable: false},
&core.TextField{Name: "subtitle_statement", Required: false, Presentable: false},
&core.TextField{Name: "incipit_statement", Required: false, Presentable: false},
&core.TextField{Name: "responsibility_statement", Required: false, Presentable: false},
&core.TextField{Name: "place_statement", Required: false, Presentable: false},
&core.TextField{Name: "publication_statement", Required: false, Presentable: false},
// Other discerning Information
&core.NumberField{Name: "year", Required: false},
&core.TextField{Name: "edition", Required: false},
// Media Information
&core.SelectField{Name: "language", Required: false, Values: models.LANGUAGE_VALUES, MaxSelect: len(models.LANGUAGE_VALUES)},
&core.SelectField{Name: "content_type", Required: false, Values: models.CONTENT_TYPE_VALUES, MaxSelect: len(models.CONTENT_TYPE_VALUES)},
// Physical Description
&core.TextField{Name: "extent", Required: false},
&core.TextField{Name: "dimensions", Required: false},
&core.SelectField{Name: "media_type", Required: false, Values: models.MEDIA_TYPE_VALUES, MaxSelect: len(models.MEDIA_TYPE_VALUES)},
&core.SelectField{Name: "carrier_type", Required: false, Values: models.CARRIER_TYPE_VALUES, MaxSelect: len(models.CARRIER_TYPE_VALUES)},
// Norm Data
&core.TextField{Name: "references", Required: false},
&core.RelationField{Name: "places", Required: false, CollectionId: places.Id, CascadeDelete: false, MaxSelect: 5000},
// Musenalm specific data
&core.SelectField{Name: "musenalm_status", Required: false, Values: models.MUSENALM_STATUS_VALUES, MaxSelect: len(models.MUSENALM_STATUS_VALUES)},
&core.JSONField{Name: "musenalm_deprecated", Required: false},
// Exemplare:
&core.JSONField{Name: "items", Required: false},
)
setMusenalmIDField(&fields)
setEditorStateField(&fields)
setNotesAndAnnotationsField(&fields)
return &fields
}
func entriesIndexes(collection *core.Collection) {
addMusenalmIDIndex(collection)
addIndex(collection, "preferredtitle", false)
addIndex(collection, "varianttile", false)
addIndex(collection, "paralleltitle", false)
addIndex(collection, "title_statement", false)
addIndex(collection, "subtitle_statement", false)
addIndex(collection, "incipit_statement", false)
addIndex(collection, "responsibility_statement", false)
addIndex(collection, "place_statement", false)
addIndex(collection, "publication_statement", false)
addIndex(collection, "year", false)
addIndex(collection, "edition", false)
}

View File

@@ -0,0 +1,18 @@
package migrations
import (
"github.com/pocketbase/pocketbase/core"
m "github.com/pocketbase/pocketbase/migrations"
)
func init() {
m.Register(func(app core.App) error {
// add up queries...
return nil
}, func(app core.App) error {
// add down queries...
return nil
})
}

View File

@@ -0,0 +1,18 @@
package migrations
import (
"github.com/pocketbase/pocketbase/core"
m "github.com/pocketbase/pocketbase/migrations"
)
func init() {
m.Register(func(app core.App) error {
// add up queries...
return nil
}, func(app core.App) error {
// add down queries...
return nil
})
}

View File

@@ -0,0 +1,104 @@
package migrations
import (
"errors"
"github.com/Theodor-Springmann-Stiftung/musenalm/models"
"github.com/pocketbase/pocketbase/core"
m "github.com/pocketbase/pocketbase/migrations"
)
func init() {
m.Register(func(app core.App) error {
items := itemsTable()
fields := itemsFields(items, app)
if fields == nil {
return errors.New("Could not find places collection")
}
items.Fields = *fields
itemsIndexes(items)
return app.Save(items)
}, func(app core.App) error {
items, err := app.FindCollectionByNameOrId(models.ITEMS_TABLE)
if err != nil {
return nil
}
return app.Delete(items)
})
}
func itemsTable() *core.Collection {
collection := core.NewBaseCollection(models.ITEMS_TABLE)
setBasicPublicRules(collection)
return collection
}
func itemsFields(collection *core.Collection, app core.App) *core.FieldsList {
entries, err := app.FindCollectionByNameOrId(models.ENTRIES_TABLE)
if err != nil {
return nil
}
fields := core.NewFieldsList(
// Title information
&core.TextField{Name: "preferredtitle", Required: true, Presentable: true},
&core.TextField{Name: "varianttitle", Required: false, Presentable: false},
&core.BoolField{Name: "paralleltitle", Required: false},
// Transcribed information
&core.TextField{Name: "title_statement", Required: false, Presentable: false},
&core.TextField{Name: "subtitle_statement", Required: false, Presentable: false},
&core.TextField{Name: "incipit_statement", Required: false, Presentable: false},
&core.TextField{Name: "responsibility_statement", Required: false, Presentable: false},
&core.TextField{Name: "place_statement", Required: false, Presentable: false},
&core.TextField{Name: "publication_statement", Required: false, Presentable: false},
// Other discerning Information
&core.NumberField{Name: "year", Required: false},
&core.TextField{Name: "edition", Required: false},
// Media Information
&core.SelectField{Name: "language", Required: false, Values: models.LANGUAGE_VALUES, MaxSelect: len(models.LANGUAGE_VALUES)},
&core.SelectField{Name: "content_type", Required: false, Values: models.CONTENT_TYPE_VALUES, MaxSelect: len(models.CONTENT_TYPE_VALUES)},
// Physical Description
&core.TextField{Name: "extent", Required: false},
&core.TextField{Name: "dimensions", Required: false},
&core.SelectField{Name: "media_type", Required: false, Values: models.MEDIA_TYPE_VALUES, MaxSelect: len(models.MEDIA_TYPE_VALUES)},
&core.SelectField{Name: "carrier_type", Required: false, Values: models.CARRIER_TYPE_VALUES, MaxSelect: len(models.CARRIER_TYPE_VALUES)},
// Musenalm specific data
&core.SelectField{Name: "musenalm_type", Required: false, Values: models.MUSENALM_TYPE_VALUES, MaxSelect: len(models.MUSENALM_TYPE_VALUES)},
&core.SelectField{Name: "pagination", Required: false, Values: models.MUSENALM_PAGINATION_VALUES, MaxSelect: len(models.MUSENALM_PAGINATION_VALUES)},
&core.FileField{Name: "scans", Required: false, MaxSize: 100 * 1024 * 1024, MaxSelect: 100, MimeTypes: models.MUSENALM_MIME_TYPES, Thumbs: []string{"0x300", "0x500", "0x1000", "300x0", "500x0", "1000x0"}}, // 100 MB
// Band:
&core.NumberField{Name: "running_number", Required: false},
&core.RelationField{Name: "entries", Required: true, CollectionId: entries.Id, CascadeDelete: false, MaxSelect: 1, MinSelect: 1},
)
setMusenalmIDField(&fields)
setEditorStateField(&fields)
setNotesAndAnnotationsField(&fields)
return &fields
}
func itemsIndexes(collection *core.Collection) {
addMusenalmIDIndex(collection)
addIndex(collection, "preferredtitle", false)
addIndex(collection, "varianttile", false)
addIndex(collection, "paralleltitle", false)
addIndex(collection, "title_statement", false)
addIndex(collection, "subtitle_statement", false)
addIndex(collection, "incipit_statement", false)
addIndex(collection, "responsibility_statement", false)
addIndex(collection, "place_statement", false)
addIndex(collection, "publication_statement", false)
addIndex(collection, "year", false)
addIndex(collection, "edition", false)
}

View File

@@ -0,0 +1,18 @@
package migrations
import (
"github.com/pocketbase/pocketbase/core"
m "github.com/pocketbase/pocketbase/migrations"
)
func init() {
m.Register(func(app core.App) error {
// add up queries...
return nil
}, func(app core.App) error {
// add down queries...
return nil
})
}

63
migrations/common.go Normal file
View File

@@ -0,0 +1,63 @@
package migrations
import (
"github.com/Theodor-Springmann-Stiftung/musenalm/models"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/types"
)
func setBasicPublicRules(collection *core.Collection) {
collection.ViewRule = types.Pointer("@request.auth.id != ''")
collection.CreateRule = types.Pointer("@request.auth.id != '' && @request.body.user = @request.auth.id")
collection.UpdateRule = types.Pointer(`
@request.auth.id != '' &&
user = @request.auth.id &&
(@request.body.user:isset = false || @request.body.user = @request.auth.id)
`)
}
func setMusenalmIDField(fieldlist *core.FieldsList) {
fieldlist.Add(&core.TextField{Name: models.MUSENALMID_FIELD, Max: 64, Required: false})
}
func setEditorStateField(fieldlist *core.FieldsList) {
fieldlist.Add(&core.SelectField{Name: models.EDITSTATE_FIELD, Required: false, Values: models.EDITORSTATE_VALUES})
}
func setNotesAndAnnotationsField(fieldlist *core.FieldsList) {
fieldlist.Add(&core.EditorField{Name: models.ANNOTATION_FIELD, Required: false, ConvertURLs: false})
fieldlist.Add(&core.EditorField{Name: models.COMMENT_FIELD, Required: false, ConvertURLs: false})
}
func addMusenalmIDIndex(collection *core.Collection) {
addIndex(collection, models.MUSENALMID_FIELD, true)
}
func addIndex(collection *core.Collection, field string, unique bool) {
name := collection.Name
collection.AddIndex("idx_"+name+"_"+field, unique, field, "")
}
func createAgentRelationsTable(app core.App, sourcetablename, targettablename, tablename string) error {
return nil
}
func basicRelationFields(app core.App, sourcetablename, targettablename string, relations []string) (core.FieldsList, error) {
stable, err := app.FindCollectionByNameOrId(sourcetablename)
if err != nil {
return nil, err
}
ttable, err := app.FindCollectionByNameOrId(targettablename)
if err != nil {
return nil, err
}
fields := core.NewFieldsList(
&core.RelationField{Name: stable.Name, Required: true, CollectionId: stable.Id},
&core.RelationField{Name: ttable.Name, Required: true, CollectionId: ttable.Id},
&core.TextField{Name: "relation_type", Required: true},
)
return fields, nil
}

1
migrations/consts.go Normal file
View File

@@ -0,0 +1 @@
package migrations

391
models/dbdata.go Normal file
View File

@@ -0,0 +1,391 @@
package models
var EDITORSTATE_VALUES = []string{"Unknown", "Inspected", "Partially Edited", "Waiting", "Edited"}
var MEDIA_TYPE_VALUES = []string{
"audio",
"Mikroform",
"Computermedien",
"mikroskopisch",
"projizierbar",
"stereografisch",
"ohne Hilfsmittel",
"video",
}
var CARRIER_TYPE_VALUES = []string{
"Tonträger",
"Audiocartridge",
"Phonographenzylinder",
"Audiodisk",
"Tonspurspule",
"Notenrolle",
"Audiokassette",
"Tonbandspule",
"Datenträger",
"Speicherkarte",
"Computerchip-Cartridge",
"Computerdisk",
"Computerdisk-Cartridge",
"Magnetbandcartridge",
"Magnetbandkassette",
"Magnetbandspule",
"Online-Ressource",
"Datenträger für Mikroformen",
"Mikrofilmlochkarte",
"Mikrofiche",
"Mikrofichekassette",
"Mikrofilm-Cartridge",
"Mikrofilmkassette",
"Mikrofilmspule",
"Mikrofilmstreifen",
"Lichtundurchlässiger Mikrofiche",
"Trägermedien für Mikroskop-Anwendungen",
"Objektträger",
"Datenträger von projizierbaren Bildern",
"Filmdose",
"Filmkassette",
"Filmspule",
"Filmstreifen",
"Filmstreifen für Einzelbildvorführung",
"Filmstreifen-Cartridge",
"Overheadfolie",
"Dia",
"Stereografische Datenträger",
"Stereobild",
"Stereografische Disk",
"Datenträger, die ohne Hilfsmittel zu benutzen sind",
"Karte",
"Flipchart",
"Rolle",
"Blatt",
"Band",
"Video-Datenträger",
"Videocartridge",
"Videokassette",
"Videobandspule",
"Mikrofilmrolle",
"Gegenstand",
"Videodisk",
"Filmrolle",
"Audio Belt",
"Audio wire reel",
}
var LANGUAGE_VALUES = []string{
"abk",
"aar",
"afr",
"aka",
"alb",
"amh",
"ara",
"arg",
"arm",
"asm",
"ava",
"ave",
"aym",
"aze",
"bam",
"bak",
"baq",
"bel",
"ben",
"bis",
"bos",
"bre",
"bul",
"bur",
"cat",
"cha",
"che",
"nya",
"chi",
"chu",
"chv",
"cor",
"cos",
"cre",
"hrv",
"cze",
"dan",
"div",
"dut",
"dzo",
"eng",
"epo",
"est",
"ewe",
"fao",
"fij",
"fin",
"fre",
"fry",
"ful",
"gla",
"glg",
"lug",
"geo",
"ger",
"gre",
"kal",
"grn",
"guj",
"hat",
"hau",
"heb",
"her",
"hin",
"hmo",
"hun",
"ice",
"ido",
"ibo",
"ind",
"ina",
"ile",
"iku",
"ipk",
"gle",
"ita",
"jpn",
"jav",
"kan",
"kau",
"kas",
"kaz",
"khm",
"kik",
"kin",
"kir",
"kom",
"kon",
"kor",
"kua",
"kur",
"lao",
"lat",
"lav",
"lim",
"lin",
"lit",
"lub",
"ltz",
"mac",
"mlg",
"may",
"mal",
"mlt",
"glv",
"mao",
"mar",
"mah",
"mon",
"nau",
"nav",
"nde",
"nbl",
"ndo",
"nep",
"nor",
"nob",
"nno",
"oci",
"oji",
"ori",
"orm",
"oss",
"pli",
"pus",
"per",
"pol",
"por",
"pan",
"que",
"rum",
"roh",
"run",
"rus",
"sme",
"smo",
"sag",
"san",
"srd",
"srp",
"sna",
"snd",
"sin",
"slo",
"slv",
"som",
"sot",
"spa",
"sun",
"swa",
"ssw",
"swe",
"tgl",
"tah",
"tgk",
"tam",
"tat",
"tel",
"tha",
"tib",
"tir",
"ton",
"tso",
"tsn",
"tur",
"tuk",
"twi",
"uig",
"ukr",
"urd",
"uzb",
"ven",
"vie",
"vol",
"wln",
"wel",
"wol",
"xho",
"iii",
"yid",
"yor",
"zha",
"zul",
}
var CONTENT_TYPE_VALUES = []string{
"kartografisches Daten-Set",
"kartografisches Bild",
"kartografisches Bewegtbild",
"kartografisches taktiles Bild",
"kartografische taktile dreidimensionale Form",
"kartografische dreidimensionale Form",
"Computerdaten",
"Computerprogramm",
"Bewegungsnotation",
"Noten",
"aufgeführte Musik",
"Geräusche",
"gesprochenes Wort",
"unbewegtes Bild",
"taktiles Bild",
"taktile Noten",
"taktile Bewegungsnotation",
"taktiler Text",
"taktile dreidimensionale Form",
"Text",
"dreidimensionale Form",
"dreidimensionales Bewegtbild",
"zweidimensionales Bewegtbild",
"aufgeführte Bewegung",
}
var MUSENALM_STATUS_VALUES = []string{
"Original vorhanden",
"Reprint vorhanden",
"Fremde Herkunft",
}
var MUSENALM_TYPE_VALUES = []string{
"Corrigenda",
"Diagramm",
"Gedicht/Lied",
"Graphik",
"Graphik-Verzeichnis",
"graph. Anleitung",
"graph. Strickanleitung",
"graph. Tanzanleitung",
"Inhaltsverzeichnis",
"Kalendarium",
"Karte",
"Musikbeigabe",
"Musikbeigaben-Verzeichnis",
"Motto",
"Prosa",
"Rätsel",
"Sammlung",
"Spiegel",
"szen. Darstellung",
"Tabelle",
"Tafel",
"Titel",
"Text",
"Trinkspruch",
"Umschlag",
"Widmung",
}
var MUSENALM_PAGINATION_VALUES = []string{
"Römische Seitenzählung",
"Arabische Seitenzählung",
"Alphabetische Seitenzählung",
"Sonstige Seitenzählung",
"1. Arabische Seitenzählung",
"2. Arabische Seitenzählung",
"3. Arabische Seitenzählung",
"4. Arabische Seitenzählung",
"5. Arabische Seitenzählung",
"6. Arabische Seitenzählung",
"7. Arabische Seitenzählung",
"8. Arabische Seitenzählung",
"1. Römische Seitenzählung",
"2. Römische Seitenzählung",
"3. Römische Seitenzählung",
"4. Römische Seitenzählung",
"5. Römische Seitenzählung",
"6. Römische Seitenzählung",
"7. Römische Seitenzählung",
"8. Römische Seitenzählung",
}
var MUSENALM_MIME_TYPES = []string{
"application/pdf",
"image/png",
"image/vnd.mozilla.apng",
"image/jpeg",
"image/jp2",
"image/jpx",
"image/jpm",
"image/gif",
"image/jxs",
"image/jxl",
"image/x-xpixmap",
"image/vnd.adobe.photoshop",
"image/webp",
"image/tiff",
"image/bmp",
"image/x-icon",
"image/vnd.djvu",
"image/bpg",
"image/vnd.dwg",
"image/x-icns",
"image/heic",
"image/heic-sequence",
"image/heif",
"image/heif-sequence",
"image/vnd.radiance",
"image/x-xcf",
"image/x-gimp-pat",
"image/x-gimp-gbr",
"image/avif",
"image/jxr",
"image/svg+xml",
}
const (
PLACES_TABLE = "places"
AGENTS_TABLE = "agents"
SERIES_TABLE = "series"
ENTRIES_TABLE = "entries"
ITEMS_TABLE = "items"
ANNOTATION_FIELD = "annotation"
MUSENALMID_FIELD = "musenalm_id"
EDITSTATE_FIELD = "edit_state"
COMMENT_FIELD = "edit_comment"
)

32
musenalm.go Normal file
View File

@@ -0,0 +1,32 @@
package main
import (
"log"
"os"
"github.com/pocketbase/pocketbase"
"github.com/pocketbase/pocketbase/apis"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/plugins/migratecmd"
// _ "musenalm/migrations"
)
func main() {
app := pocketbase.New()
migratecmd.MustRegister(app, app.RootCmd, migratecmd.Config{
Automigrate: false,
TemplateLang: migratecmd.TemplateLangGo,
})
app.OnServe().BindFunc(func(se *core.ServeEvent) error {
// serves static files from the provided public dir (if exists)
se.Router.GET("/{path...}", apis.Static(os.DirFS("./pb_public"), false))
return se.Next()
})
if err := app.Start(); err != nil {
log.Fatal(err)
}
}

BIN
pb_data/auxiliary.db Normal file

Binary file not shown.

BIN
pb_data/data.db Normal file

Binary file not shown.