mirror of
https://github.com/kikootwo/ReadMeABook.git
synced 2026-06-03 12:50:09 +00:00
Merge pull request #100 from Kikipeuk/french-traduction
Add French as Audible region
This commit is contained in:
@@ -33,6 +33,7 @@ Configurable Audible region for accurate metadata matching across different inte
|
|||||||
- India (`in`) - `audible.in` (English)
|
- India (`in`) - `audible.in` (English)
|
||||||
- Germany (`de`) - `audible.de` (non-English)
|
- Germany (`de`) - `audible.de` (non-English)
|
||||||
- Spain (`es`) - `audible.es` (non-English)
|
- Spain (`es`) - `audible.es` (non-English)
|
||||||
|
- French (`fr`) - `audible.fr` (non-English)
|
||||||
|
|
||||||
**`isEnglish` Flag:**
|
**`isEnglish` Flag:**
|
||||||
- Each region has `isEnglish: boolean` in `AudibleRegionConfig`
|
- Each region has `isEnglish: boolean` in `AudibleRegionConfig`
|
||||||
|
|||||||
@@ -271,7 +271,7 @@ src/app/admin/settings/
|
|||||||
|
|
||||||
**PUT /api/admin/settings/audible**
|
**PUT /api/admin/settings/audible**
|
||||||
- Updates Audible region
|
- Updates Audible region
|
||||||
- Body: `{ region: string }` (one of: us, ca, uk, au, in, es)
|
- Body: `{ region: string }` (one of: us, ca, uk, au, in, es, fr)
|
||||||
- No validation required
|
- No validation required
|
||||||
|
|
||||||
**PUT /api/admin/settings/prowlarr/indexers**
|
**PUT /api/admin/settings/prowlarr/indexers**
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import type { AudibleRegion } from '../types/audible';
|
|||||||
// Types
|
// Types
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
export type SupportedLanguage = 'en' | 'de' | 'es';
|
export type SupportedLanguage = 'en' | 'de' | 'es' | 'fr';
|
||||||
|
|
||||||
export interface ScrapingConfig {
|
export interface ScrapingConfig {
|
||||||
/** Audible locale query-param value (e.g. 'english', 'deutsch') */
|
/** Audible locale query-param value (e.g. 'english', 'deutsch') */
|
||||||
@@ -170,6 +170,38 @@ const SPANISH_CONFIG: LanguageConfig = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const FRENCH_CONFIG: LanguageConfig = {
|
||||||
|
code: 'fr',
|
||||||
|
annasArchiveLang: 'fr',
|
||||||
|
epubCode: 'fr',
|
||||||
|
stopWords: ['le', 'la', 'les','un', 'une', 'de', 'des', 'sur', 'dans', '\u00e0', 'et', 'par', 'pour'],
|
||||||
|
characterReplacements: {},
|
||||||
|
scraping: {
|
||||||
|
audibleLocaleParam: 'français',
|
||||||
|
authorPrefixes: ['De :', '\u00c9crit par :', 'Auteur :'],
|
||||||
|
narratorPrefixes: ['Lu par :'],
|
||||||
|
lengthLabels: ['Dur\u00e9e :'],
|
||||||
|
languageLabels: ['Langue :'],
|
||||||
|
releaseDateLabels: ['Date de publication :'],
|
||||||
|
seriesLabels: ['S\u00e9rie :'],
|
||||||
|
acceptedLanguageValues: ['français', 'french'],
|
||||||
|
runtimeHourPatterns: [/(\d+)\s*h\b/i, /(\d+)\s*heures?/i],
|
||||||
|
runtimeMinutePatterns: [/(\d+)\s*min/i, /(\d+)\s*minutes?/i],
|
||||||
|
ratingPatterns: [/(\d+[.,]?\d*)\s*de\s*5/i],
|
||||||
|
releaseDatePatterns: [/Date de publication:\s*(.+)/i],
|
||||||
|
descriptionExcludePatterns: [
|
||||||
|
/\$\d+\.\d+/,
|
||||||
|
/\d+,\d+\s*\u20ac/,
|
||||||
|
/Essayer pour/i,
|
||||||
|
/R\u00e9siliez \u00e0 tout moment/i,
|
||||||
|
/Acheter pour/i,
|
||||||
|
/^\s*de\s+[\w\s,]+$/i,
|
||||||
|
],
|
||||||
|
durationDetectionPattern: /\d+\s*(h|heures?)\s*\d*\s*(min|minutes?)?/i,
|
||||||
|
ratingTextSelector: 'sur 5 étoiles',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
// Lookup Maps
|
// Lookup Maps
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
@@ -178,6 +210,7 @@ export const LANGUAGE_CONFIGS: Record<SupportedLanguage, LanguageConfig> = {
|
|||||||
en: ENGLISH_CONFIG,
|
en: ENGLISH_CONFIG,
|
||||||
de: GERMAN_CONFIG,
|
de: GERMAN_CONFIG,
|
||||||
es: SPANISH_CONFIG,
|
es: SPANISH_CONFIG,
|
||||||
|
fr: FRENCH_CONFIG,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -192,6 +225,7 @@ export const REGION_LANGUAGE_MAP: Record<AudibleRegion, SupportedLanguage> = {
|
|||||||
in: 'en',
|
in: 'en',
|
||||||
de: 'de',
|
de: 'de',
|
||||||
es: 'es',
|
es: 'es',
|
||||||
|
fr: 'fr',
|
||||||
};
|
};
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import type { SupportedLanguage } from '../constants/language-config';
|
import type { SupportedLanguage } from '../constants/language-config';
|
||||||
|
|
||||||
export type AudibleRegion = 'us' | 'ca' | 'uk' | 'au' | 'in' | 'de' | 'es';
|
export type AudibleRegion = 'us' | 'ca' | 'uk' | 'au' | 'in' | 'de' | 'es' | 'fr';
|
||||||
|
|
||||||
export interface AudibleRegionConfig {
|
export interface AudibleRegionConfig {
|
||||||
code: AudibleRegion;
|
code: AudibleRegion;
|
||||||
@@ -64,6 +64,13 @@ export const AUDIBLE_REGIONS: Record<AudibleRegion, AudibleRegionConfig> = {
|
|||||||
baseUrl: 'https://www.audible.es',
|
baseUrl: 'https://www.audible.es',
|
||||||
audnexusParam: 'es',
|
audnexusParam: 'es',
|
||||||
language: 'es',
|
language: 'es',
|
||||||
|
},
|
||||||
|
fr: {
|
||||||
|
code: 'fr',
|
||||||
|
name: 'French',
|
||||||
|
baseUrl: 'https://www.audible.fr',
|
||||||
|
audnexusParam: 'fr',
|
||||||
|
language: 'fr',
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user