Commit Graph

4172 Commits

Author SHA1 Message Date
Anas Rashid
5f2b779e89 Public home page, Naskh default font, no poet photos
- home page is public: no redirect to login/admin import; flat poet list until century
  groups exist (upstream needed a pinned 'popular poets' group, which Divan never has, so
  the home page always redirected); public 'being prepared' notice when there are no poets
- Naskh is the default font, Nastaliq the option (site and static reader)
- poet/writer photos hidden everywhere (CSS on /poet/image/), poet page photos tab removed

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 19:59:20 +02:00
Anas Rashid
b186ed3336 run-local.sh: default data path ../divan-data
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 19:47:44 +02:00
Anas Rashid
37fe04ac79 Rename to Divan (Roman script) throughout
Projects (DivanRazor, DivanService.sln), files, folders, classes, settings (Divan:),
API routes (/api/divan), DB name and tables (divan, Divan*), local container/paths,
repo links (anas-rashid/divan, divan-data). Urdu دیوان unchanged.
Migrations renamed consistently (no pending model changes); requires a fresh database.
Stop tracking the generated RMuseum/RMuseum.xml (was upstream's stale doc).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 19:46:27 +02:00
Anas Rashid
a5f0f1b74d Fix poet image placeholder: null RImageId cast threw 500 (#4); run-local waits via HTTP
- GetPoetImageIdByUrl: missing portrait -> Guid.Empty (placeholder) instead of a null cast
- run-local.sh: wait for SQL Server with a query and for API/site via HTTP
  (pipefail+grep -q never matched; API log level hides 'Now listening' outside Development)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 01:03:44 +02:00
Anas Rashid
3df43e4979 Backups, restore and rollback runbook (#10, #12)
- deploy/backup.sh / deploy/restore.sh (compose service or local container; side-by-side test restore)
- restore: chown copied backup for sqlservr, fail loudly on unreadable file list
- README: update, backup, test-restore and rollback steps

Validated locally: backup 194 MB, restored into a test DB with identical counts, test DB dropped.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 00:27:31 +02:00
Anas Rashid
e78fc9bd99 Security pass (#11): no default JWT secret, CORS allow-list, Divan system emails
- appsettings: drop upstream's public JWT secret; API refuses to start outside Development without one
- Cors:AllowedOrigins (compose: https://SITE_DOMAIN); unset = any origin for local dev
- default admin/system/bot emails @divan.local instead of @ganjoor.net

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 00:26:01 +02:00
Anas Rashid
e8cedaab8f Museum subsystem: remove public UI, keep backend dormant (#5)
- poem page: drop manuscripts/images tab and Pinterest/museum image suggestion form
- remove image recommendation (Pin) page and route
- museum API, services and tables stay dormant (no schema change)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 00:24:30 +02:00
Anas Rashid
c97bb18c3a Urdu public pages, batch 3 (#2): browser JS messages and labels
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 00:23:00 +02:00
Anas Rashid
e3e3819c78 Urdu public pages, batch 2 (#2): auth, errors, map, FAQ, similar poems, people pages, page titles
- translate remaining public views and page-model strings (titles, messages, relation names)
- Urdu stopword list for word-frequency stats (replaces Persian list)
- error pages: drop list of alternative Ganjoor services

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 00:22:09 +02:00
Anas Rashid
4fd832dbcb Urdu public pages (#2); hide unconfigured semantic search; safe defaults
- translate reading-path views (poet, category, poem, search, header, login, partials)
  from Persian to Urdu (exact-run dictionary, 262 strings; AI-summary data marker kept)
- semantic search widget only when SemanticSearchAPIRoot is configured
- appsettings defaults: no Ganjoor tracking script, no Ganjoor semantic search,
  API/site roots default to the local Divan stack instead of api.ganjoor.net

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 00:18:00 +02:00
Anas Rashid
9bd445614e Urdu-aware search without SQL Server full-text (#3)
- MakeTextSearchable: Urdu letter variants, Urdu full stop, Urdu diacritics, zwj/marks
- SearchLikePatterns: phrase or per-word LIKE patterns (escaped), normalised like stored text
- poem, similar-poem and comment search use LIKE (Linux SQL Server image has no full-text)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 00:09:09 +02:00
Anas Rashid
8bb26a0296 Poet images: placeholder instead of broken images (#4)
- poet ImageUrl always points at the API image endpoint
- endpoint serves a neutral SVG placeholder when a poet has no portrait
- public data export: poet image URLs use our API (WebServiceUrl), not ganjoor.net

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 00:06:28 +02:00
Anas Rashid
90f07bf10e run-local.sh: one-command local stack (SQL Server container, API, site, optional import)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 23:57:40 +02:00
Anas Rashid
0ce63b2bc6 Static reader: single-file browser reader over the divan-data static API
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 23:53:00 +02:00
Anas Rashid
5063608d5d Move archived upstream docs to docs/upstream/
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 23:51:29 +02:00
Anas Rashid
ac41c6115f Database name: museum -> divan
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 23:49:29 +02:00
Anas Rashid
532d005cdb Rename Ganjoor -> Divan throughout the code
Projects (GanjooRazor -> DivanRazor, GanjoorService.sln -> DivanService.sln), files,
folders, classes, namespaces, settings, API routes (/api/divan) and DB tables (Divan*).
External addresses (ganjoor.net, github.com/ganjoor) unchanged. Migrations renamed
consistently (no pending model changes); requires a fresh database.
Upstream RUNNING_LOCALLY/SEMANTIC_SEARCH docs archived unmodified under docs/.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 23:49:01 +02:00
Anas Rashid
8a981bf993 Remove Ganjoor-specific services; Urdu defaults
- drop 7-day/top visits tabs (Ganjoor's kntr analytics)
- page language options: Urdu (default), Persian, Arabic; drop Turkish/Kurdish
- fa-IR -> ur-PK as default language/culture (site + API); JS digits ur-PK-u-nu-arabext
- unlink blog/museum/ava/... .ganjoor.net help links (text kept)
- random verse: data-driven random poem from our DB/API instead of c.ganjoor.net widget
  and hard-coded Persian poet id ranges
- word tooltip: Urdu Wiktionary instead of vajehyab; drop abjad.ganjoor.net

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 23:45:08 +02:00
Anas Rashid
91a7517d31 Remove music features (Spotify, Golha, Beeptunes, music index, song suggestions)
Pages, API endpoints, services and assets removed; music DB models/tables kept
so the feature can be rebuilt for Urdu later.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 23:41:02 +02:00
Anas Rashid
ecad9e9311 Remove Tajik: TajikGanjoor site, API, services, export, transliteration
- delete TajikGanjoor project (removed from solution)
- drop Tajik endpoints/services/DTOs/entities; migration DivanRemoveTajik drops their tables
- remove Tajik admin buttons/handlers and appsettings sections
- README is now Divan's; upstream README kept in docs/GANJOOR-README.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 23:37:39 +02:00
Anas Rashid
223166ef5e Divan: make env config work, ur-PK locale, own-site links relative
- AddEnvironmentVariables() where appsettings.json is read directly
- JWT ValidIssuer follows RSecurityBackend:ApplicationName (was hard-coded Ganjoor)
- deploy/entrypoint.sh: copy settings RSecurityBackend reads only from appsettings.json
- Dockerfile: pin SDK 10.0.302 (newer Razor rejects some upstream views)
- lang=ur-PK; ganjoor.net own-site links -> relative; api.ganjoor.net -> APIRoot; search.xml
- DIVAN.md: first admin password is Test!123 (upstream doc is wrong)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 23:32:16 +02:00
Anas Rashid
1811572d9e Divan: Urdu classical poetry fork of GanjoorService
- Rebrand گنجور -> دیوان across GanjooRazor; lang=ur; Urdu home page and footer
- Hijri century groups with Urdu names
- Noto Nastaliq Urdu (default) / Noto Naskh Arabic switch
- Remove footer links to Ganjoor-only services; link Wikisource, data and code
- Linux deployment: Dockerfile, docker-compose (SQL Server 2022, API, site, Caddy)
- DIVAN.md: changes and deploy guide

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 23:14:25 +02:00
Hamid Reza Mohammadi
09449c347f catmap location link fix 2026-10-04 18:00:36 +03:30
Hamid Reza Mohammadi
cd38157fce people tags #387 2026-10-04 17:47:09 +03:30
Hamid Reza Mohammadi
cf295d3083 category couplet count plot fix 2026-10-04 17:17:38 +03:30
Hamid Reza Mohammadi
f15bf951bf people tags #387 2026-10-04 15:23:26 +03:30
Hamid Reza Mohammadi
a5f26d1381 people tags #387 2026-10-04 15:22:44 +03:30
Hamid Reza Mohammadi
94859046a3 people tags #387 2026-10-04 08:46:55 +03:30
Hamid Reza Mohammadi
2e0e87d277 people tags #387 2026-10-04 07:58:00 +03:30
Hamid Reza Mohammadi
15c8f8f526 people tags #387 2026-10-03 21:22:12 +03:30
Hamid Reza Mohammadi
3493225dc5 people tags #387 2026-10-03 21:16:42 +03:30
Hamid Reza Mohammadi
dfe514c55e #421 geo tag moderation 2026-10-03 20:10:11 +03:30
Hamid Reza Mohammadi
6ecfd8c38a people tags #387 2026-10-03 19:38:56 +03:30
Hamid Reza Mohammadi
a1fad2259d people tags #387 2026-10-03 19:25:00 +03:30
Hamid Reza Mohammadi
4ca749bad5 people tags #387 2026-10-03 19:07:05 +03:30
Hamid Reza Mohammadi
de304f089c people tags #387 2026-10-03 18:54:32 +03:30
Hamid Reza Mohammadi
88f39c2bab people tags #387 2026-10-03 18:20:49 +03:30
Hamid Reza Mohammadi
fecbf0ec3b people tags #387 2026-10-03 18:05:55 +03:30
Hamid Reza Mohammadi
00f98bb611 editor improvements 2026-10-03 17:22:57 +03:30
Hamid Reza Mohammadi
24dc4da51b editor improvements 2026-10-03 16:49:27 +03:30
Hamid Reza Mohammadi
9176c62cfe editor improvements 2026-10-03 16:43:39 +03:30
Hamid Reza Mohammadi
5f4f6e9131 people tags #387 2026-10-03 13:05:13 +03:30
Hamid Reza Mohammadi
b5ca0f3b9c people tags #387 2026-10-03 12:14:25 +03:30
Hamid Reza Mohammadi
864cd6b38d people tags #387 2026-10-03 08:55:08 +03:30
Hamid Reza Mohammadi
4ba7da57b8 people tags #387 2026-10-03 08:41:31 +03:30
Hamid Reza Mohammadi
0c98df8526 editor service errors are displayed better 2026-10-03 08:17:31 +03:30
Hamid Reza Mohammadi
5ce8973ca3 people tags #387 2026-10-03 08:10:12 +03:30
Hamid Reza Mohammadi
854bae2873 people tags #387 2026-10-03 07:57:59 +03:30
Hamid Reza Mohammadi
f4b522e980 people tags #387 2026-10-02 21:24:05 +03:30
Hamid Reza Mohammadi
73f2741d7d homepage search improvements
#511
2026-10-02 17:22:01 +03:30