Cat Feeder  1.0.0
The Cat feeder project
Loading...
Searching...
No Matches
aliases.py
Go to the documentation of this file.
1"""
2# +==== BEGIN CatFeeder =================+
3# LOGO:
4# ..............(..../\\
5# ...............)..(.')
6# ..............(../..)
7# ...............\\(__)|
8# Inspired by Joan Stark
9# source https://www.asciiart.eu/
10# animals/cats
11# /STOP
12# PROJECT: CatFeeder
13# FILE: aliases.py
14# CREATION DATE: 15-01-2026
15# LAST Modified: 0:33:35 17-01-2026
16# DESCRIPTION:
17# This is the backend server in charge of making the actual website work.
18# /STOP
19# COPYRIGHT: (c) Cat Feeder
20# PURPOSE: The alias file to ensure modules used to convert media has names that correspond to their internal references.
21# // AR
22# +==== END CatFeeder =================+
23"""
24
25from typing import Dict
26from ..http_constants import DataTypes
27
28# Maps our internal DataTypes to the format strings Pillow expects in Image.save()
29PILLOW_FORMAT_ALIASES: Dict[DataTypes, str] = {
30 DataTypes.AVIF: "AVIF",
31 DataTypes.BMP: "BMP",
32 DataTypes.DIB: "BMP", # DIB is essentially BMP
33 DataTypes.GIF: "GIF",
34 DataTypes.HEIC: "HEIC",
35 DataTypes.HEIF: "HEIF",
36 DataTypes.ICO: "ICO",
37 DataTypes.XICON: "ICO", # alias
38 DataTypes.JPEG: "JPEG",
39 DataTypes.JPE: "JPEG",
40 DataTypes.JPG: "JPEG",
41 DataTypes.JFIF: "JPEG",
42 DataTypes.PNG: "PNG",
43 DataTypes.SVG: "SVG",
44 DataTypes.TIFF: "TIFF",
45 DataTypes.TIF: "TIFF", # alias
46 DataTypes.WEBP: "WEBP",
47 DataTypes.GRIB: "GRIB",
48 DataTypes.HDR: "HDR",
49 DataTypes.ICNS: "ICNS",
50 DataTypes.H5: "HDF5",
51 DataTypes.HDF: "HDF5",
52 DataTypes.JP2: "JPEG2000",
53 DataTypes.J2K: "JPEG2000",
54 DataTypes.JPC: "JPEG2000",
55 DataTypes.JPF: "JPEG2000",
56 DataTypes.JPX: "JPEG2000",
57 DataTypes.J2C: "JPEG2000",
58 DataTypes.IM: "IM",
59 DataTypes.IIM: "IIM",
60 DataTypes.MPO: "MPO",
61 DataTypes.MSP: "MSP",
62 DataTypes.PALM: "PALM",
63 DataTypes.PCD: "PCD",
64 DataTypes.PXR: "PIXAR",
65 DataTypes.PBM: "PPM", # Pillow uses PPM for PBM/PGM/PPM/PNM
66 DataTypes.PGM: "PPM",
67 DataTypes.PPM: "PPM",
68 DataTypes.PNM: "PPM",
69 DataTypes.PFM: "PPM",
70 DataTypes.PSD: "PSD",
71 DataTypes.QOI: "QOI",
72 DataTypes.BW: "SGI",
73 DataTypes.RGB: "SGI",
74 DataTypes.RGBA: "SGI",
75 DataTypes.SGI: "SGI",
76 DataTypes.RAS: "RAS",
77 DataTypes.ICB: "TGA",
78 DataTypes.VDA: "TGA",
79 DataTypes.VST: "TGA",
80 DataTypes.WMF: "WMF",
81 DataTypes.EMF: "EMF",
82 DataTypes.CUR: "ICO", # Cursor files
83 DataTypes.PCX: "PCX",
84 DataTypes.DDS: "DDS",
85 DataTypes.EPS: "EPS",
86 DataTypes.FIT: "FITS",
87 DataTypes.FITS: "FITS",
88 DataTypes.FLI: "FLI",
89 DataTypes.FLC: "FLC",
90 DataTypes.GBR: "GBR",
91 DataTypes.APNG: "PNG", # Pillow treats APNG as PNG internally
92 DataTypes.XBM: "XBM",
93 DataTypes.XPM: "XPM",
94}
95
96ARCHIVE_FORMAT_ALIASES: Dict[DataTypes, str] = {
97 DataTypes.ZIP: "zip",
98 DataTypes.TAR: "tar",
99 DataTypes.TAR_GZ: "tar.gz",
100 DataTypes.TAR_BZ2: "tar.bz2",
101 DataTypes.TAR_XZ: "tar.xz",
102 DataTypes._7Z: "7z",
103 DataTypes.DIGIT_7Z: "7z",
104 DataTypes.RAR: "rar",
105 DataTypes.GZ: "gz",
106 DataTypes.BZ2: "bz2",
107 DataTypes.XZ: "xz",
108}
109
110# Maps our internal DataTypes to document file extensions for Pandoc
111DOCUMENT_FORMAT_ALIASES: Dict[DataTypes, str] = {
112 # Plain text formats
113 DataTypes.TXT: "txt",
114 DataTypes.TEXT: "txt",
115 DataTypes.PLAIN: "txt",
116 DataTypes.MARKDOWN: "md",
117 DataTypes.MD: "md",
118
119 # Structured data formats
120 DataTypes.JSON: "json",
121 DataTypes.YAML: "yaml",
122 DataTypes.YML: "yaml",
123 DataTypes.TOML: "toml",
124 DataTypes.CSV: "csv",
125 DataTypes.XML: "xml",
126
127 # Web formats
128 DataTypes.HTML: "html",
129 DataTypes.XHTML: "xhtml",
130 DataTypes.RSS: "rss",
131 DataTypes.ATOM: "atom",
132
133 # Document formats
134 DataTypes.PDF: "pdf",
135 DataTypes.RTF: "rtf",
136 DataTypes.DOC: "doc",
137 DataTypes.DOCX: "docx",
138
139 # Spreadsheet formats
140 DataTypes.XLS: "xls",
141 DataTypes.XLSX: "xlsx",
142 DataTypes.ODS: "ods",
143
144 # Presentation formats
145 DataTypes.PPT: "ppt",
146 DataTypes.PPTX: "pptx",
147 DataTypes.ODP: "odp",
148
149 # OpenDocument formats
150 DataTypes.ODT: "odt",
151
152 # eBook formats
153 DataTypes.EPUB: "epub",
154
155 # Calendar formats
156 DataTypes.ICS: "ics",
157
158 # Geographic formats
159 DataTypes.GEOJSON: "geojson",
160}
161
162# Maps our internal DataTypes to audio file extensions for pydub/ffmpeg
163AUDIO_FORMAT_ALIASES: Dict[DataTypes, str] = {
164 # Common audio formats
165 DataTypes.MP3: "mp3",
166 DataTypes.WAV: "wav",
167 DataTypes.AAC: "aac",
168 DataTypes.FLAC: "flac",
169 DataTypes.OGG_AUDIO: "ogg",
170 DataTypes.OPUS: "opus",
171 DataTypes.M4A: "m4a",
172 DataTypes.AIFF: "aiff",
173 DataTypes.AMR: "amr",
174 DataTypes.MID: "mid",
175 DataTypes.MIDI: "midi",
176}
177
178# Maps our internal DataTypes to video file extensions for ffmpeg
179VIDEO_FORMAT_ALIASES: Dict[DataTypes, str] = {
180 # Common video formats
181 DataTypes.MP4: "mp4",
182 DataTypes.WEBM: "webm",
183 DataTypes.AVI: "avi",
184 DataTypes.MKV: "matroska",
185 DataTypes.MOV: "mov",
186 DataTypes.FLV: "flv",
187 DataTypes.MPEG: "mpeg",
188 DataTypes.WMV: "wmv",
189 DataTypes.M4v: "m4v",
190 DataTypes.OGG_VIDEO: "ogg",
191 DataTypes._3GP: "3gp",
192 DataTypes.DIGIT_3GP: "3gp",
193 DataTypes._3G2: "3g2",
194 DataTypes.DIGIT_3G2: "3g2",
195 DataTypes._3GPP: "3gp",
196 DataTypes.DIGIT_3GPP: "3gp",
197 DataTypes._3GPP2: "3g2",
198 DataTypes.DIGIT_3GPP2: "3g2",
199}