RMuseum
User login/logout/register/...
login
loginViewModel
LoggedOnUserModel
renew an expired session
user session id
LoggedOnUserModel
options service
constructor
gets specified publish artifact item info (including images + attributes)
get all published artifacts (including CoverImage info but not items info)
get list of artifact statuses user can see
get all artifacts visible by user (including CoverImage info but not items info)
gets specified publish artifact info (including CoverImage + images)
get specific artifact info with limited number of images
get artifact images according to start and count params
remove unpublished artifact having no notes and not bookmarked
gets specified publish artifact info (including CoverImage + images) where its items are filteted by tag
gets specified publish artifact info (including CoverImage + images) where its items are filteted by tag
gets specified publish artifact info (including CoverImage + images)
gets specified publish artifact info (including CoverImage + images)
gets specified publish artifact info (including CoverImage + images) where its items are filteted by tag
gets specified publish artifact info (including CoverImage + images) where its items are filteted by tag
edit artifactt master record (user should have additional permissions artifact:awaiting and artifact:publish to change status of artifact)
editing related collections such as images and attributed or complex properties such as CoverImage is ignored
Set Artifact Cover Item Index
get tag bundle by frindly url
add new tag
only name is processed
get all tags
edit tag
editable fields are limited
changes order of tags based on their position in artifacts
up / down
the other tag which its Order got replaced with the input id
changes order of tags based on their position in artifact items
up / down
the other tag which its Order got replaced with the input id
get tag value bundle by frindly url
get tag value by frindly url
add new tag value to artifact
only name is processed
edit artifact attribute value
editable fields are limited
apply on all same value tags
remove tag from artifact
add new tag value to item
only name is processed
edit item attribute value
editable fields are limited
apply on all same value tags
remove tag from item
changes order of tag values based on their position in an artifact
up / down
the other tag which its Order got replaced with the input id
changes order of tag values based on their position in an item
up / down
the other tag which its Order got replaced with the input id
update an artifact item info
gets specified publish artifact item info (including images + attributes)
Add new artifact (multipart/form-data)
const data = new FormData();
data.append('name', 'تست');
data.append('description', '');
data.append('srcUrl', '');
data.append('picTitle', 'تست');
data.append('picDescription', '');
data.append('file', this.file);
data.append('picSrcUrl', '');
import from external resources
pdf/loc/princeton/harvard/qajarwomen/hathitrust/penn/cam/bl/folder/walters/cbl/append/iiif
119/foldername
golestan-baysonghori/artifact id
keep alive (for import background service)
true
retry import
due to a bug in loc json outputs some artifacts with more than 1000 pages were downloaded incompletely
123456
bookmark artifact
bookmark item
item bookmarks info
fav artifact
fav item
artifact bookmarks info
item bookmarks info
user bookmarks
user favorites
add note for artifact
add note for artifact item
Edit User Notes
a note can not be edited by a user other than its owner or another using having note:moderate permission
only htmlContent is processed
delete user notes
1. a note can not be deleted by a user other than its owner or another using having note:moderate permission
2. all notes which have refernce to deleting note (sent in reply to it) would be deleted irrelevant of their ownership
list of notes deleted
get private notes for artifact
get private notes for artifact
get private notes for artifact item
get public notes for artifact item
user public notes
user public notes
all users public notes
report a public note
id of saved report
Get a list of reported notes
delete a report for abuse in public user notes
delete a reported user note (accept the complaint)
suggest ganjoor link
get suggested ganjoor links
finds next unsynchronized suggested link with an aleady synched one from the artificat if exists,
return value might be null or an array with length 1 or 2 (has paging-headers)
has paging-headers
return value might be null or an array with length 1 or 2
review suggested ganjoor link
mark suggested ganjoor link as synchronized
display ogn page
remove ganjoor link
toc / temporary one time api / to be removed
get suggested pinterest links
suggest pinterest link for ganjoor
review suggested ganjoor pinterest link
mark suggested pinterest ganjoor link as synchronized
remove pinterest link
start filling GanjoorLink table OriginalSource values
start removing original images
search artifacts
search artifact items
start setting an artifact items as a category poems text original source
upload artifact to external server
create images for ganjoor
create images for ganjoor - offline
add a new item to an artifact
readonly mode
constructor
Artifact Service
IUserPermissionChecker instance
IMemoryCache
Captcha service
IAppUserService instance
Configuration
Audit Log Controller Base
constructor
returns all donations
donation by id
add donation + regenerate donations page
update donation date and donorname + regenerate donations page
delete donation + regenerate donations page
returns all expenses
expense by id
add expense + regenerate donations page
update expense date and description + regenerate donations page
delete expense
one time import
regenerate donations page
is account info settings is on or off (for deciding to regenerate donations page based on it)
donation service
queued ftp uploads
process ftp queue
reset ftp queue
FTP Service
constructor
get published categories
get all categories
get category by id
add a new faq category
update an existing faq category
delete a faq category
get published pinned items
get published category items
get all category items
get item by id
get published item by id
add a new faq item
update an existing faq item
delete a faq item
FAQ Service
constructor
get list of published poets without their biography
gets list of poets grouped by centuries (first one is the pinned ones)
get list of all poets (including unpublished ones) with their bio
poet by id
poet by url
update poet info (except for image)
regenerate half centuries
create new poet
starts deleting poet job
`
get poet image with png ext
sample: hafez
get poet image
sample: hafez
set poet image
poet image
cat by id
cat by full url
set category extra info
only RImageId field is valid
generate missing book covers
list of books
batch rename cat poems
batch resulg category poems
set category poems language tag
set category poems language tag
fill missing poem formats
start assigning poem rhythms
delete a category
Start Finding Missing Rhythms
generate category toc
directly insert generated TOC
start generating sub cats TOC
regenerate TOCs
page by url
modify page
modify poem => only these fields: NoIndex, RedirectFromFullUrl, MixedModeOrder
clean cache by id
delete page
older versions of a page (modifications history except for current version)
get old version of page
page url by id
get redirect url for a url
get poem by id
not implemented yet
next/previous
get poem verses by id
get poem by url
not implemented yet
not implemented yet
not implemented yet
next/previous
get poem recitations (PlainText/HtmlText are intentionally empty)
get user upvoted recitations of a poem
get poem images (PlainText/HtmlText are intentionally empty)
get poem songs
Get Poem Comments
Get Section Related ones
zero or less than it means all
find poem section rhyming letters
delete a poem section (section should not be linked to a poem verse of types other than paragraphs or comments)
delete a poem
send poem corrections
delete unreviewed user corrections for a poem
returns last unreviewed correction from the user for a poem
get list of user suggested corrections
get list of all suggested corrections
userId
effective corrections for poem
get correction by id
get next unreviewed correction
moderate poem correction
break a poem from a verse forward
id of new poem
suggest song for poem
get next unreviewed song
get song by id
history of suggested songs by a user
user suggested songs
review song
modify a published song
delete a poem song by id
directly insert a poem related song
get a random poem from hafez
get a random poem from a poet (c.ganjoor.net replacement), 0 means random poet,
حافظ (2)، خیام (3)، ابوسعید ابوالخیر (26)، صائب (22)، سعدی (7)، باباطاهر (28)، مولوی (5)، اوحدی (19)، خواجو (20)، شهریار (35)، عراقی (21)، فروغی بسطامی (32)، سلمان ساوجی (40)، محتشم کاشانی (29)، امیرخسرو دهلوی (34)، سیف فرغانی (31)، عبید زاکانی (33)، هاتف اصفهانی (25) یا رهی معیری (41)
get a single comment information (only published comments, replies are not included)
get recent comments
get logged on users recent comments
get awaiting comments
delete awaiting comment
publish awaiting comment
post new comment
edit user's own comment
link or unlink user's own comment to a coupletIndex
couplet summary for linked comment
delete user's own comment
report a comment
id of reported record
delete a report (without deleting corresponding comment)
get list of reported comments
delete reported other users comment
imports data from ganjoor SQLite database (form file)
import category data from ganjoor SQLite database (form file)
Apply corrections from sqlite
export a poet to sqlite database
start exporting all poets
Get user public profile
Get Similar Poems accroding to prosody and rhyme informations
cannot be empty
can be empty
send 0 for all
send 0 for all
return value is not complete or valid for some parts, you should use only the valid parts!
language tagged poem sections
fa-IR, ar, ...
0 means all poets
search
returns ganjoor metre list ordered by rhythm
find poem rhyme
analysis poem to find its prosody information
examine site pages for broken links
examine comments for long links
start filling poems couplet indices
regenerate poem full titles to fix an old bug
start finding rhymes
separate verses in poem.PlainText with Environment.NewLine instead of SPACE
if it is 0 it is ignored
start building sitemap
build tj.ganjoor.net site map
regenerate stats page
start updating mundex page
switch bookmark
if you send a negative number it means you are trying to bookmark a comment
switch bookmark and return bookmark id ('0' for switching off a bookmark)
if you send a negative number it means you are trying to bookmark a comment
Bookmark couplet if it is not
delete bookmark
modify bookmark private note
get poem user bookmarks (only Id, CoupletIndex and DateTime are valid in the output view model)
is the poem couplet is bookmarked by user
user bookmarks
a phrase to be searched through user private notes
start generating related sections info for wholepoem sections
get next ganjoor poem probable metre
get a list of ganjoor poems probable metres
save ganjoor poem probable metre
dismiss ganjoor poem probable metre
Finding Category Poems Duplicates
manually add a duplicate for a poems
delete a duplicate
list of category saved duplicated poems
start removing category duplicates
get couplet sections
get all poem sections
regenerate poem sections (dangerous: wipes out existing data)
update related sections manually
regenerate category related sections
category id
get a specific poem section
start band couplets fix
returns last unreviewed correction from the user for a section
section id
send a correction for a section
moderate poem section correction
delete unreviewed user corrections for a poem section
get section correction by id
get next unreviewed correction for poem sections
get list of user suggested corrections
get list of all suggested corrections
effective corrections for section
transfer poems and sections from a meter to another one and delete the source meter
get poem tags ordered by LunarDateTotalNumber then by Id
add poem geo tag
update poem tag
delete poem tag
get a categoty poem tags
synchronize https:://naskban.ir links (logs in and then out to naskban.ir using auth info)
number of synched links
mark naskban links for poems of a categiory and its children as human reviewed
mark naskban links a text original for a category
import naskban ganjoor matchings
discover poet naskban paper sources
delete poem related naskban images by url
import paper sources from museum
get paper sources for a catgeory
get category poem related images
extracting quoted poems
regenerate related poems pages
regenerate two poets similar page
discover related poems
get quoted poems for a poem
two poems quoted records
get quoted poems
get quoted by id
insert quoted
update quoted
delete quoted
suggest new quote (for normal users)
get list of user suggested corrections
next unmoderated quoted poem
moderate quoted poems
tag category with source
update digital sources stats
add new page
build word counts
one time fixer for word counts new RowNmbrInCat fields
one time fixer for category word count summries
category word counts
can be empty
tajik poets
tajik page by url
search tajik poems
fill couplet summaries using open ai
fill poem summaries using open ai
geo tag poems using AI
readonly mode
Ganjoor Service
IAppUserService instance
for client IP resolution
Image Service
IMemoryCache
aggressive cache
Configuration
constructor
returns list of suggested photos for a poet
poet id
returns a single suggested photo
return the next unpublished suggested line for poets
add a suggestion for poets photos (send form) with these fields: poetId, title, description, srcUrl and an image attachment
modify a suggestion for poets photos
reject a suggestion for poets photos
delete published suggested photo
Poets Photos Service
constructor
returns list of suggested spec lines for a poet
poet id
returns specific suggested line for poets
return the next unpublished suggested line for poets
add a suggestion for poets spec lines
modify a suggestion for poets spec lines
reject a suggestion for poets spec lines
delete published suggested spec line
Ganjoor Service
constructor
get all locations
get location by id
add new location
update an existing location
readonly mode
Configuration
location service
constructor
returns image stream with image/jpeg MIME type
returns image stream with image/webp MIME type
Rotate Image in 90 deg. multiplicants: 90, 180 or 270
Generate Cropped Image Based On ThumbnailCoordinates For Notes
id of cropped image
constructor
Artifact Service
golha collection programs
collection id
program tracks
Catalogue Service
constructor
Notifications controller
constructor
get all numberings
get numbering by id
get all numberings related to a category
category id
get all numbering patterns for a couplet
add new numbering
update an existing numbering
recount a numbering
generate missing default numberings and start counting
readonly mode
Configuration
numbering service
constructor
returns paginated published recitations (if poetId or catId is non-zero its ordered by poemId ascending if not it is ordered by publish date descending)
if PageSize is -1 or is more than 1000 it resets to 1000
empty: no search term, non-empty: searches within AudioArtist, AudioTitle, poem.FullTitle and poem.PlainText simultaneously
get published recitation by id
creates an RSS file from recent published recitations
Gets audio narrations, user must have recitation::moderate permission to be able to see all users narrations
default: false, user must have recitation::moderate permission to be able to see all users narrations
default: -1, unfiltered
additional headers: paging-headers, audio-upload-enabled
get the corresponding mp3 file for the narration
it could be protected (Authorized), but I guess I would have problems with available client components support,
so I preferred it to be anonymous, as it does not harm anybody I guess
get the corresponding xml file contents (xml) for the narration
it could be protected (Authorized), but I guess I would have problems with available client components support,
so I preferred it to be anonymous, as it does not harm anybody I guess
get the corresponding xml file for the recitation
it could be protected (Authorized), but I guess I would have problems with available client components support,
so I preferred it to be anonymous, as it does not harm anybody I guess
Gets Verse Sync Information
narration id
updates narration metadata
reviewstatus cannot be set to Approved or Rejected using this method, use moderate method instead
only these set of fields are updatable: AudioTitle, AudioArtist, AudioArtistUrl, AudioSrc, AudioSrcUrl, ReviewStatus (Draft to Pending and vice versa and Approved/Rejected to Pending)
only narrator or a moderator can update the narration
Moderate pending narration (for moderating other users' recitations you also need recitation:moderate permission)
Delete a recitation
Get User Uploads
default: false, user must have recitation::moderate permission to be able to see all users uploads
additional headers: paging-headers, audio-upload-enabled
upload, update, moderate and delete operations on recitations might temporarily become disabled,
this method gets the current status
remarks: the value of this flag is provided as a custom header called audio-upload-enabled in some common GET methods
in order to reduce the need for a separate query
Reciation Upload
if you send true to replace parameter, if there is an existing recitation for the poem from the user with the same Audio Artist name
corresponding mp3+xml files are replaced an no other changes is applied (no new post, preserving recitation position)
Get User Profiles
Get User Default Profile
Add a narration profile
Update a narration profile
Delete a narration profile
publishing tracker data
Transfer Recitations Ownership (for recitations owned by current user)
number of transfered items
Synchronization Queue
report an error in a recitation
get errors reported for recitations
reject a reported error for recitations and notify the reporter (and deletes the report)
accepts a reported error for recitations, change status of the recitation to rejected and notify the reporter and recitation owner (and deletes the report)
accepts a reported error for recitations, add mistake to approve the mistake and notify the reporter and recitation owner (and deletes the report)
edit approved mistake of a recitation text
remove approved mistake
up vote a recitation
revoke recitaion up vote
revoke recitaion up vote
get user upvoted recitations
compute poem recitations order (no update)
starts checking recitaions with missing files and add them to reported errors list job
retry publish unpublished narrations
Makes recitations of فریدون فرحاندوز first recitations
get category top one recitations
check if a category has any recitations
rss for category top one recitations
readonly mode
constructor
Artifact Service
IUserPermissionChecker instance
IAppUserService instance
Configuration
options
constructor
Generic Image Provider
constructor
Long Running Jobs
constructor
roles
constructor
add site banner (send form) with these fields: alt, url and an image attachment
modify site banner
delete site banner
get all defined site banners
get a random active site banner
Ganjoor Service
constructor
get all languages
get language by id
add new language
update an existing language
get published poem translations
get published poem translation in a specific language
get all translations of a poem in a specific language
send -1 for all languages
last language user has contributed in its translation
add translation for a poem (please specify verses VORder, Id is not processed)
get all poem translations (for export utility)
get translation by id
readonly mode
translation service
Configuration
constructor
user visits tracking controller
get user history
add a user history track
delete a user history track
start or stop tracking user
User Visits Tracking Service
constructor
Museum Database Context
Picture Files
Item Attributes
Artifacts
Items
Import Jobs
Tags
User Bookmarks
User Notes
Ganjoor Links
Pinterest Links
Ganjoor Audio Files
Upload Sessions
Uploaded files
User Recitation Profiles
Ganjoor Poets
Ganjoor Categories
Ganjoor Poems
Ganjoor Verses
Narration Publishing Tracker
Ganjoor Pages
Ganjoor Metres
singers
music tracks
golha tracks
GolhaCollection
GolhaPrograms
PoemMusicTracks
Ganjoor Comments
Ganjoor Reported Comments
Ganjoor Page Snapshots
Ganjoor Site Bannaers
Ganjoor Health Check Errors
donations
expenses
donation expenditures
poem corrections
languages for translation
poem translations
ganjoor bookmarks
ganjoor numbering schemas
ganjoor verse numbers
ganjoor half centuries
ganjoor cities
related poems to each poem (having same rhyme letters and prosody metre)
Reported User Notes
recitation error reports
recitation user up votes
recitation approved mistakes
probable metres
ganjoor user history track items (stored by his or her choice)
suggested spec line for poets
suggested pictures for poets
faq categories
faq items
Temporary Model contianing duplicated poems information
poem sections
related sections to each section (having same rhyme letters and prosody metre)
section correctons
Updating related sections logs
PoemGeoDateTags
People tags
Books (PDF Library)
Authurs
Multi Volume PDF Collections
PDF Books
PDF Pages
PDF Sources
Queued FTP Uploads
PDF Ganjoor Links
OCR Queue Items
PDF Download Queue
Related Poems
discover quoted q items
paper sources
digital sources
Category Word Counts
Category Word Count Summaries
tajik poets
tajik cats
tajik poems
tajik verse
tajik pages
donation expenditures
Id
GanjoorDonation Id
GanjoorDonation
amount
Ganjoor Donation (based on donation records saved in old html format of https://ganjoor.net/donate/)
id
date: (donation dates have been collected in different formats, so instead of keeping their dates in a DateTime field I ought to use a string field)
record date
donation amount (0 for old imported records)
Amount Unit
amount string (avoiding to parse different formats of old html text)
donor name
donor link (unused)
remaining (it could be ignored later when our data has been normalized enough and be calculated using related data)
expenditure desc
record is imported from old HTML text of donation page
Ganjoor Expenses
Id
date
amount
unit
description
donation expenitures
Ganjoor Donation View Model
id - null for POST api -
record date
donation amount (0 for old imported records)
"تومان" is good, Amount Unit, if you send another Unit it would be consumed with EXPENSES of the same Unit, if it send EMPTY it wotld not be consumed!
donor name
null for POST api - date: (donation dates have been collected in different formats, so instead of keeping their dates in a DateTime field I ought to use a string field)
null for POST api -amount string (avoiding to parse different formats of old html text)
null for POST api -remaining (it could be ignored later when our data has been normalized enough and be calculated using related data)
null for POST api -expenditure desc
null for POST api - record is imported from old HTML text of donation page
update date and description view model (donation + expense limited update api)
date
description
Items or pictures status
Id
parent id
Order in Collections
Friendly Url
Name
Name In English
Description
Description In English
Main Image
Last Modified for caching purposes
All Images
Attributes
Museum Master Item
Id
Friendly Url
Publish Status
Name
Name In English
Description
Description In English
Date/Time
Last Modified for caching purposes
Cover Item Index
Cover Image
Cover Image Id
Parts of this item
Item Count (for lists and queries)
Attributes
to view model
Artifact Picture Files
Title
Title in English
Description
Description in English
Publish status
order in the collection it belongs to it
نام فایل ذخیره شده با بالاترین کیفیت
e0d7050a-7e30-4a2f-b181-0daa4a1e1068.jpg
نام فایل ذخیره شده با بالاترین کیفیت
fbe9cc8e-12fa-4cb9-8f09-bbf353333383.jpg
عرض تصویر مناسب نمایش در صفحهٔ اختصاصی
طول تصویر مناسب نمایش در صفحهٔ اختصاصی
عرض تصویر با اندازه مناسب نمایش در صفحات لیستی
طول تصویر با اندازه مناسب نمایش در صفحات لیستی
source url
Last Modified for caching purposes
url to access this image from THE external host, contains '/norm/' which when
you replace it with '/thumb/' you would have ExternalThumbnailImageUrl
and if you replace it with '/orig/' you would have a url for ExternalOriginalSizeImageUrl which MIGHT NOT EXIST and end in a 404 error
duplicated a picture record (Id is missing so you should store this to get a new Id)
Item Attribute
Id
Order
tag type
Friendly Url
Publish Status
Name
Name In English
Plural Name
Plural Name In English
Value is normally changed globally
نوع ویژگی
عادی
پیوند
جستجو
پیوند و جستجو
متن چپ به راست
بدون مقدار
عنوان در فهرست
IIIF
Attribute Value
Id
Friendly Url
Publish Status
Value
Values In English
link or ....
new artifact view model
RArtifactItemRecord with additional info
main item info
parent
parent name
parent image
parent image external url
parent item count
empty or null means this is last item
next image
next image external url
empty or null means this is first item
prev image
prev image external url
Formatted Tags
Museum Master Item View Model
Id
Friendly Url
Publish Status
Name
Name In English
Description
Description In English
Date/Time
Last Modified for caching purposes
Cover Item Index
Cover Image
Cover Image Id
Parts of this item
Item Count (for lists and queries)
Attributes
Tags
Binary Tagged Items
Titles of Items in Contents
Artifact Tag (RTag with grouped related RTagValues of Artifact)
Id
Order
tag type
Friendly Url
Publish Status
Name
Name In English
Plural Name
Plural Name In English
Value is normally changed globally
Values
Tag Bundle View Model
Item Title
Item Friendly Url
Items Count
Item Image Id
url to access the image from THE external host, contains '/norm/' which when
you replace it with '/thumb/' you would have ExternalThumbnailImageUrl
and if you replace it with '/orig/' you would have a url for ExternalOriginalSizeImageUrl which MIGHT NOT EXIST and end in a 404 error
Tag Bundle View Model
Id
Friendly Url
Name
Plural Name
Values
Artifact Binary Tagged items Summation
Tag Name
Tag Friendly Url
Item Count
Title of an Item in Artifact Contents
Title
Order
Level
Item Friendly Url
specific forms and permission
artifact
tag
note
view drafts
edittag
awaiting
publish
import
moderate
review suggested ganjoor links
audio narrations
ganjoor contents
FAQ contents
reorder
review suggested songs
add song from any source
manage footer bannaers
donations
translations
photos
pdf
ftp
list of forms and their permissions
ganjoor user public profile
Id
user image
nick name
biography
web site
LoginViewModel with app specfic properties
keep user browsing history if he or she wants so
Bookmark Type
Private Bookmark
Public Favorite
Private Note (GanjoorComment)
User Bookmarks
Id
User Id
User
Master Record Id
Master Record
Item Record Id
Item Record
DateTime
Type
User Note
Id
User Id
Master Record
Item Record
DateTime
Type
User Note
Queued FTP Upload
id
local file path
remote file path
delete file after upload
queue date
processing
process date
error
FAQ Category
Id
title
order
description
published
category items
FAQ Item
id
question
excerpt
answer
pinned
item order
category id
category
item order in category
content search
hashtag 1
hashtag 2
hashtag 3
hashtag 4
published
Audio Review Status
All / Unfiltered (for queris)
Draft
pending for review
approved
Rejected after initial review
Rejected due to errors
Audio Synchronization Status (binary combination is acceptable)
no changed
new upload
meta data should be updated
sound files should be reuploaded (this means xml file is also needs to reuploaded)
Item should be deleted
Poem Narration
Id
Owner User
Owner User Id
Final data is actually exported to a MySQL database which this auto increment field is its key
Ganjoor Post Id
Caution: this could become a relation with newly added table
but if we do this we lose the ability to drop and create without losing narration data
This determines where an audio is displayed between a list of sounds related to a specfic poem
Using this field content you would determine xml, mp3 and ogg file names
combining this with + .ext would preduce relative path of sound files on our file server the full path would become [HOMEPath] + '/i/' + this value
"a2"
We had previously used different pathes because when a directory became overcrowded our connection time would increase unbearably due to IRAN internet problems, so it is sensible to store it per record and not as a global option value
MP3 File Path
MP3 url
This is also a legacy field
"/a2/x"
XML Schema is defined based on Desktop Ganjoor (https://github.com/ganjoor/ganjoor) code, for
more information take a look at this code:
https://github.com/ganjoor/ganjoor/blob/master/ganjoor/Audio%20Support/PoemAudioListProcessor.cs
XML url
Audio Title
Audio Artist
Audio Artist Url
Audio Source
Audio Src Url
Legacy Audio Guid
Audio File CheckSum
mp3 size in bytes
ogg size in bytes
Upload Date
File Last Updated
Review Date (Approve or Reject)
MP3 File local path on Windows Server (if item is not rejected probably it is not valid and it is deleted)
XML File local path on Windows Server (if item is not rejected probably it is not valid and it is deleted)
AudioSyncStatus
Review Status
Reviewer user
Reviewer user
Review Message
initial score for ordering recitations
Recitation Type
in sync with text
Recitation approved mistake
id
recitation id
recitation
mistake
number of verses affected
couplet index
Error Report for recitations
Id
Recitation Id
Recitation
Reason Text
Reporter User Id
Reporter User
DateTime
number of verses affected
couplet index
Narration Publishing Tracker
Id
Poem Narration Id
Poem Narration
Start Date
XML File Copied
MP3 File Copied
First MySql DB Updated
Second DB Updated
Finished
Finish Date
Last Excecption
recitation type
normal recitations
commantaries
unfiltered
recitation user up vote (the records would be deleted manually if the owner user account gets deleted)
Id
Recitation Id
Recitation
User Id, defining it this way causes no cascade relation
User
date time
Narration Profiles for users
Id
User
UserId
Profile Name
this would be appended to audio files names prefixed by a dash to make them unique and specfic to user
filenames usually would look like {GanjoorPostId}-{FileSuffixWithoutDash}.{ext}
for example 2200-hrm.xml
artist name
artist url
audio src
audio src url
is default
Moderation Result
no moderation
approve
reject
Public (no user specific data) for publish recitations
Audio Id
Ganjoor Post Id
Poem Full Title
Poem Full Url (without domain name)
Audio Title
Audio Artist
Audio Artist Url
Audio Source
Audio Src Url
Legacy Audio Guid
Audio File CheckSum
mp3 size in bytes
Publish Date
File Last Updated
Mp3 Url
Xml Text, xml file url is {WebServiceUrl.Url}/api/audio/file/{audio.Id}.xml
Poem Plain Text
Poem Html Text
mistakes
This determines where an audio is displayed between a list of sounds related to a specfic poem
Recitation Type
in sync with text
upvoted by current user (filled at client)
Post Error Report for recitations
Id
Recitation Id
Reason Text
recitation
number of verses affected
couplet index
DateTime
approved mistake view model
id
mistake
number of verses affected
couplet index
Poem Narration Moderation View Model
Moderation Result
Rejection Message
Recitation Ordering View Model
recitation
earlyness advatage
initial score
upvotes from users other than the owner
approved mistaked
total scores
computed order
recitation (it is null by default and you should fill it using a separate api call based on RecitationId)
RecitationPublishingTracker View Model
user email
Poem Full Title
Artist Name
Operation
In Progress
XML File Copied
MP3 File Copied
First MySql DB Updated
Second DB Updated
Succeeded
Error
Exception
Start Date
Finish Date
Verse Sync Range
Verse Order
Verse Text
Audio Start in Milliseconds
Poem Narration view model
parameterless constructor for deserialization support
constructor
Id
Owner User
Final data is actually exported to a MySQL database which this auto increment field is its key
Ganjoor Post Id
Poem Full Title
Poem Full Url (without domain name)
This determines where an audio is displayed between a list of sounds related to a specfic poem
Using this field content you would determine xml, mp3 and ogg file names
combining this with + .ext would preduce relative path of sound files on our file server the full path would become [HOMEPath] + '/i/' + this value
"a2"
We had previously used different pathes because when a directory became overcrowded our connection time would increase unbearably due to IRAN internet problems, so it is sensible to store it per record and not as a global option value
MP3 File Path
MP3 url
OGG File Path
OGG url
This is also a legacy field
"/i/a2/x"
XML Schema is defined based on Desktop Ganjoor (https://github.com/ganjoor/ganjoor) code, for
more information take a look at this code:
https://github.com/ganjoor/ganjoor/blob/master/ganjoor/Audio%20Support/PoemAudioListProcessor.cs
XML url
Audio Title
Audio Artist
Audio Artist Url
Audio Source
Audio Src Url
Legacy Audio Guid
Audio File CheckSum
mp3 size in bytes
ogg size in bytes
Upload Date
File Last Updated
Review Date (Approve or Reject)
MP3 File local path on Windows Server (if item is not rejected probably it is not valid and it is deleted)
XML File local path on Windows Server (if item is not rejected probably it is not valid and it is deleted)
Value is one or a combination of
Review Status
Review Message
Recitation Type
in sync with text
UserNarrationProfile View Model
Id
Do not fill it in POST api
User
Do not fill it in POST api
UserId
Do not fill it in POST api
Profile Name
this would be appended to audio files names prefixed by a dash to make them unique and specfic to user
filenames usually would look like {GanjoorPostId}-{FileSuffixWithoutDash}.{ext}
for example 2200-hrm.xml
update [4/10/2021]: you can send this one empty
artist name
artist url
audio src
audio src url
is default
ganjoor link for artifacts and items
Id
Ganjoor Post Id
ganjoor url
ganjoor title
Artifact Id
artifact
Artifact Item Id
Artifact Item
User Id who suggested the link
Suggestion Date
User who suggested the link
User id who reviewed the link
User who reviewed the link
Review Date
review result
Synchronized with ganjoor
display this image on poem page
original source url
link to original source
is text original source
Ganjoor Paper Source
Id
poet id
cat id
cat full title
cat full url
book type
book full url
naskban book id
book title
description
is the text original source for the category?
cover thumbnail image url
match percent
reviewed by a human
position in sorting
Link Type
Custom
Museum
Pinterest
Instagram
Naskban
PDFBook Ganjoor Link
Id
Ganjoor Post Id
ganjoor url
ganjoor title
pdf book id
page number
User Id who suggested the link
Suggestion Date
User who suggested the link
User id who reviewed the link
User who reviewed the link
Review Date
review result
Synchronized with ganjoor
is the is the text original source?
PDF Page Title
external thumbnail image url
suggested using machine computations
pinterest link
Id
Ganjoor Post Id
ganjoor url
ganjoor title
alt text
link type
pinterest url
pinterest image url
User Id who suggested the link (this would always be null for anonyous suggestions, kept it so that someday it would be used to integerate GanjoorLink into this class)
Suggestion Date
User who suggested the link
User id who reviewed the link
User who reviewed the link
Review Date
review result
review description
Artifact Id
artifact
Artifact Item Id
Artifact Item
Synchronized with ganjoor
is the is the text original source?
pdf book id
page number
naskban link id
match percent
reviewed by a human
Review Result
Awaiting (default)
Approved
Rejected
Ganjoor Link View Model
Id
Ganjoor Post Id
ganjoor url
ganjoor title
entity name
entity friendly url
entity image id
review result
Synchronized with ganjoor
suggested by
is text original source
url to access this image from THE external host, contains '/norm/' which when
you replace it with '/thumb/' you would have ExternalThumbnailImageUrl
and if you replace it with '/orig/' you would have a url for ExternalOriginalSizeImageUrl which MIGHT NOT EXIST and end in a 404 error
Link Suggestion
Ganjoor Post Id
ganjoor url
ganjoor title
Artifact Friendly Url
Artifact Item Id
Safe pinterest link view model
Id
Ganjoor Post Id
ganjoor url
ganjoor title
alt text
link type
pinterest url
pinterest image url
Suggestion Date
User id who reviewed the link
Review Date
review result
review description
Artifact Id
Artifact Item Id
Synchronized with ganjoor
entity name
entity friendly url
entity image id
pinterest / ganjoor link suggestion view model
Ganjoor Post Id
ganjoor url
ganjoor title
alt text
link type
pinterest url
pinterest image url
id
CatId
Word
Count
row number in category
id
CatId
unique word count
total word count
correction review result
id
source url slug
short name
full name
source category
couplets count
discover quoted q item
id
poet id
poem id
related poet id
related poem id
id
poem id
poet id
poem
order
poet name
poet image url
poem full url
poem full title
excerpt
other poems
id
poem id
poem
section index
poet id
order
poet name
poet image url
poem full url
poem full title
excerpt
target poem id
target section index
other poems
Ganjoor Category
id
poet_id
poet
text
parent_id
parent
url => slug
sample: /hafez/ghazal
TOC Style
Category Type
additional descripion or note
html mode of additional descripion or note
order when mixed with poems
published
category book name
poet image
user image id
sum up sub categories geo locations
category map name
Ganjoor Category Type
half century
id
name
order
start
end
show in time line
poets
half century
id
order
poet id
poet
Ganjoor Comment
Id
Ganjoor Poem Id
Ganjoor Poem Id
user id
user
author name (MySql imported field)
author email (MySql imported field)
author url (MySql imported field)
author IP address (MySql imported field)
comment date
comment
In Reply to Other Comment
Reference Comment Id
publish status
related verse 1 Id, this is always null, because verses are removed and created on operations like editing and their Ids changed, so
later I decided to rely on (PoemId + CoupletIndex) instead
do not use
related verse 2 Id, this is always null, because verses are removed and created on operations like editing and their Ids changed, so
later I decided to rely on (PoemId + CoupletIndex) instead
do not use
couplet index
Comment Abuse Report
id
comment id
comment
reason code for better grouping: offensive, bogus, other
some explanotory text provided by reporter
reported by id
reported by user
Temporary Model contianing duplicated poems information
Id
source category id (this category is about to be deleted and redirected)
source poem id
source poem
destination poem id
destination poem
Geo Locations (Cities) referred by Ganjoor Metadata
id
name
Latitude
Longitude
AI generated
Ganjoor Page Health Check log
id
referer url
broken link
multiple targets for a page
target url
Language or system of writing for translating poems
id
name
code
native name
is right to left
description
language from code
Poem prosodic Metre
Id
Url Slug
Rythm
مفاعیلن مفاعیلن فعولن
Name
هزج مسدس محذوف
Description
Total Verse Count (its actually couplet count)
Numbering Schema
id
name
starting category id
ending category
ending category id
ending category
lines count
verse count
total poem couplets
total paragraphs
last counting date
Ganjoor Page
id
Page Type
Published
page order
title
cat + parent cats title + title
url => slug
sample: /hafez/ghazal/sh1
Html Text
parent id
parent
related poet id
related poet
related category id
related category
related poem id
related poem
second poet id
second poet
post date
no index (search engines are blocked to index the page)
if a page url is changed, store the old URL here to be redirected automatically
snapshot of ganjoor pages to keep track of their changes
id
ganjoor page id
ganjoor page
id - this record is then modified by this user and made obsolete
this record is then modified by this user and made obsolete
record date
a description of the modfication
title
url => slug
Html Text
Poem Rhythm
rhyme letters
source name
source url slug
old collection or book name for Saadi's ghazalyiat (طیبات، خواتیم و ....)
old collection page url e.g /saadi/tayyebat
Ganjoor Page Type
None
Poet Page
Cat Page
Poem Page
Prosody Similars
Hashieha Page
Similar Poems of two poets
Prosody and Statistics
Ganjoor Poem
id
cat-id
cat
title
cat + parent cats title + title
url => slug
sample: /hafez/ghazal/sh1
verses text
verses text as html (ganjoor.net format)
prosody information
in fact this should be a many-to-many relationship, but our current dataset lacks such a relationship instance and
because in fact it is actually this relationship should exists between a non-existant entity called block of poem
I ignored this relationship to take care of it whenever the block entity would be added to the data structure
metre
rhyme letters
source name
source url slug
old collection or book name for Saadi's ghazalyiat (طیبات، خواتیم و ....)
old collection page url e.g /saadi/tayyebat
order when mixed with categories
published
language (this is intended to affect html page encodings and not determine actuallly accents and ....)
poem summary
poem is claimed by multiple poets
poem correction
Correction Id
poem Id
poem
modified verses
title
original title
rhythm
original rhythm
note
date
user Id
user
reviewed
reviewdate
review note
reviewer id
reviwer user id
application order for poem
review result for title
review result for rhythm
had any effect on poem after moderation? effective in history
rhythm 2
original rhythm 2
review result for rhythm 2
rhythm 3
original rhythm 3
review result for rhythm 3
rhythm 4
original rhythm 4
review result for rhythm 4
rhyme letters
original rhyme letters
rhyme letters review result
language
original language
language review resukt
suggested poem summary
original poem summary
summary review result
hide the editors name
poem format
original poem format
poem format review result
poem format
unknown
غزل
قصیده
مثنوی
قطعه
رباعی
دوبیتی
غزل/قصیده/قطعه
ترکیب بند
تک بیت
نیمایی
ترکیب بند
مسمط مثلث
مستزاد
رباعی مستزاد
مسمط مربع
مسمط مخمس
سپید
نیمایی یا سپید
مسمط مسدس
مسمط مثمن
مسمط
چهارپاره
چند بندی
بحر طویل
Probable Prosody Information for a poem
Id
poem id
poem
metre
section id
Ganjoor Poem Section
record id
Poem Id
Poem
poet id might be different from GanjoorPoem.PoetId
poet might be different from GanjoorPoem.PoetId
use this field instead of Id for referencing to ease record deletion for verses, Index starts at 0, each poem should have at least one non-virtual part ordered by Index without break
for lots of poems Number equals to Index + 1, but for rare ones such as a paragraph containing multi-band poem this could be different, 0 means no visible numbers
section type
how GanjoorPoemSection is linked to GanjoorVerse
prosody information
in fact this should be a many-to-many relationship, but our current dataset lacks such a relationship instance
metre
for non WholePoem sections, there must be a reference section for meters in order to make them updatable
rhyme letters
verses text
verses text as html (ganjoor.net format)
valid for whole poem sections
first couplet index
language, null means farsi
top 6 related sections
old metre id to see it needs refreshing related sections
old rhyme letters to see it needs refreshing related sections
modified
excerpt
poem section correction
Correction Id
section id
section
rhythm
original rhythm
review result for rhythm
rhythm 2
original rhythm 2
review result for rhythm2
break from verse1 VOrder
review result for break from verse1 VOrder
break from verse2 VOrder
review result for break from verse2 VOrder
break from verse3 VOrder
review result for break from verse3 VOrder
break from verse4 VOrder
review result for break from verse4 VOrder
note
date
user Id
user
reviewed
reviewdate
review note
reviewer id
reviwer user id
application order for poem
had any effect on poem after moderation? effective in history
break from verse5 VOrder
review result for break from verse5 VOrder
break from verse6 VOrder
review result for break from verse6 VOrder
break from verse7 VOrder
review result for break from verse7 VOrder
break from verse8 VOrder
review result for break from verse8 VOrder
break from verse9 VOrder
review result for break from verse9 VOrder
break from verse10 VOrder
review result for break from verse10 VOrder
rhyme letters
original rhyme letters
rhyme letters review result
language
original language
language review result
poem format
original poem format
poem format review result
hide the editors name
poem translation
id
language id
language
poem id
poem
title translation
verses
published
user id
user
date/time
comments
Ganjoor Poet
cat_id field is removed, it is retrievable by querying
where == and
== null
id
name
description
short name
poet image
user image id
published on website
birth year in lunar hijri
death year in lunar hijri
Home page pin order (zero means not pinned)
BirthYearInLHijri, for some poets it is only indicator of their century of birth and should not be relied as their valid birth date
DeathYearInLHijri, for some poets it is only indicator of their century of death and should not be relied as their valid death date
birth location id
birth location
death location id
death location
Ganjoor Poet Picture
id
Poet Id
Poet
order
picture id
picture
suggested by id
suggested by
published
selected
Ganjoor Poet Specification
Id
Poet Id
Poet
order
Contents
published
suggested by id
suggested by
related poem to a poem
record id
poem id
poem
related poem id (this could be a poem we do not have it available)
this poem is written and should be displayed prior to the related poem
if the related poet poem has multiple poems related to this poem, which one is chosen to be shown at main poems pages?
this sort order can be used to pin a record on top
related poem peot death date in hijri (used for sorting)
related poem poet name
related poem poet url
related poem poet image
full title
full url
couplet 1 verse 1
is main part
couplet 1 verse 2
is main part
couplet 1 index
related couplet 1 verse 1
is main part
related couplet 1 verse 2
is main part
related couplet 1 index
description
published (approved)
when a poem contains more than one quoted couplet from another one this should be more than 1
poems (same poem) are claimed by both poets
poet id (redundant for simplifying queries)
related poet id
related indirectly
Suggested by user id
Suggested by user
suggestion date
review date
reviewer id
reviwer user id
instead of deleting rejected quotes keep them for user (not published + not rejected means not reviewed)
review note
a person refered by a poem
id
name
description
wikipedia url
birth year in lunar hijri
death year in lunar hijri
BirthYearInLHijri, for some poets it is only indicator of their century of birth and should not be relied as their valid birth date
DeathYearInLHijri, for some poets it is only indicator of their century of death and should not be relied as their valid death date
birth location id
birth location
death location id
death location
AI generated
ganjoor.net site banner
id
banner image
image id
alternate text
target url
active
id
tajik title
additional descripion or note in Tajik
poet_id
poet
id
verses text as html (ganjoor.net format)
id
cat id
title
verses text
sample: /hafez/ghazal/sh1
cat + parent cats title + title
cat
id
tajik nick name
additional descripion or note in Tajik
birth year in lunar hijri
id
poem_id
vorder
tajik text
ganjoor TOC options
Ganjoor Bookmark
Id
User Id
User
Poem Id
Poem
couplet index
Verse Id, this is always null, because verses are removed and created on operations like editing and their Ids changed, so
later I decided to rely on (PoemId + CoupletIndex) instead
Verse 2 Id, this is always null, because verses are removed and created on operations like editing and their Ids changed, so
later I decided to rely on (PoemId + CoupletIndex) instead
DateTime
private note for bookmark
ganjoor user history track item (stored by his or her choice)
id
user id (nullable to prevent a db cascade relation)
user
poem id
poem
date/time
Ganjoor Verse
global id, auto generated (missing in Ganjoor Desktop database)
poem_id
poem
vorder
position
text
couplet index
GanjoorPoemSection index
second GanjoorPoemSection index
third GanjoorPoemSection index
forth GanjoorPoemSection index
language id
language
couplet summary
id
Numbering schema Id
Numbering schema
Poem Id (no relation is defined)
verse couplet index (do not add related verses here)
line number
is poem verse or paragraph
number based on type of line: is it a poem verse or a paragraph
Verse translation
id
verse id
verse
translated text
Verse Vorder / Text
record id
verse order
text
original text
review result
note
couplet indexs
verse position
original verse position
verse position result
mark for delete
mark for delete result
new verse, if it is a new verse you should insert it in VORder position and shift verses previously positioned at VORder and after that
new verse result
language id
original language id
language review result
suggested couplet summary
original couplet summary
summary review result
Geo + date tags for poems
Id
Poem Id
Poem
couplet index
location
geo location
Hijri Ghamari year
Hijri Ghamari month
Hijri Ghamari day
sample: 14440101, would be used in sorting events
verified date
ignore in category
related person id
related person
AI generated
poem related track
id
poem id
poem
track type
artist name
artist url
album name
album url
track name
track url
GanjoorTrack Id
singer
singer id
GanjoorTrack
GolhaTrack Id
GolhaTrack
description
approved
Suggested by user id
Suggested by user
approval user would be extractable from AuditLogs
approval date
broken link
instead of deleting rejected songs keep track of them
rejection cause
Song Order
poem music track type
all
https://beeptunes.com/or https://khosousi.com
http://www.golha.co.uk
itunes.com
https://open.spotify.com/
poem section type
sections like paragraphs or poems within paragraphs of text
bands of a multi-band poem
band couplets (virtual) some are virtual because they contain verse from different parts of poems (like verses from all band couplets)
couplets (virtual) for Masnavi
Updating related sections logs
id
meter id
rhyme letters
date/time
how GanjoorPoemSection is linked to GanjoorVerse
معنی فیلد position در جدول verse با توجه به مقادیر این ساختار داده مشخص می شود.
imported from Desktop Ganjoor source
First Verse in a normal Beyt
Second Verse in a normal Beyt
First Verse or the only one in a Band Beyt
Second Verse in a Band Beyt
Free form verse
Comment
Non-poem paragraph
Verse Position strings
Verse Position
Text
default verse positions
get verse position text
Ganjoor Batch Naming Model
Start with (not including required spaces)
شمارهٔ
remove previous pattern from start until any numbers
remove set of characters other than spaces from beginning and end
.-
simulate naming
cat view model
id
text
url => slug
full url
TOC Style
Category Type
additional descripion or note
html mode of additional descripion or note
order when mixed with poems
published
category book name
user image id
sum up sub categories geo locations
category map name
Next Category without Ancestors/Children/Poems info
Previous Category without Ancestors/Children/Poems info
ancestors
cat children
poems
paper sources
new image
GanjoorCentury View Model
id
name
order
start
end
show in time line
poets
GanjoorCommentAbuseReport View Model
id
reason code for better grouping: offensive, bogus, other
some explanotory text provided by reporter
comment
Id
author name (MySql imported field)
author url (MySql imported field)
comment date
comment
status
User Id
in reply to
poem
this can be used by clients
verse1 id
verse2 id
couplet index
couplet summary
new comment model
Poem Id
comment
in reply to
couplet index - send null for unrelated to a couplet comment
GanjoorComment Summary View Model
Id
author name (MySql imported field)
author url (MySql imported field)
comment date
comment
status
in reply to
User Id
replies
this can be used by clients
couplet index
couplet summary
for client
Ganjoor Couplet Number View Model
name
number
is poem verse or paragraph
number based on type of line: is it a poem verse or a paragraph
total couplets
total poem couplets
total paragraphs
Ganjoor Duplicate View Model
Id
Source Poem Id
Source Poem cat + parent cats title + title
Source Poem sample: /hafez/ghazal/sh1
Source Poem First Verse
destination poem id
destination Poem cat + parent cats title + title
destination Poem sample: /hafez/ghazal/sh1
destination poem first verse
Rhyme Analysis Result
rhyme
the verse analysis stopped at
modify page view model
title
url => slug
Html Text
Poem Rhythm
Second Poem Rhythm
Third Poem Rhythm
rhyme letters
source name
source url slug
old collection or book name for Saadi's ghazalyiat (طیبات، خواتیم و ....)
old collection page url e.g /saadi/tayyebat
no index (search engines are blocked to index the page)
if a page url is changed, store the old URL here to be redirected automatically
order when mixed with categories
published
language (this is intended to affect html page encodings and not determine actuallly accents and ....)
TOC Style
Category Type
additional descripion or note
html mode of additional descripion or note
a description of the modfication
Ganjoor Page View Model
id
Ganjoor Page Type
title
cat + parent cats title + title
url => slug
sample: /hafez/ghazal/sh1
Html Text
no index (search engines are blocked to index the page)
if a page url is changed, store the old URL here to be redirected automatically
Poet or Cat
Poem
Second Poet
next normal page
previous normal page
GanjoorPageSnapshot summary view model
id
record date
a description of the modfication
Ganjoor Page: Summary View Model
id
title
FullUrl
a more complete GanjoorPoem View Model
Id
title
cat + parent cats title + title
url => slug
sample: /hafez/ghazal/sh1
verses text
verses text as html (ganjoor.net format)
source name
source url slug
old collection or book name for Saadi's ghazalyiat (طیبات، خواتیم و ....)
old collection page url e.g /saadi/tayyebat
order when mixed with categories
published
language
poem summary
category
Next Poem
Previous Poem
verses
Recitations
Images
Songs
Comments
poem sections
geo/date tags
top 6 quoted poems
section index
poem is claimed by multiple poets
poem correction view model
Correction Id
poem Id
modified verses
title
original title
rhythm
original rhythm
note
date
user Id
nickname
reviewed
reviewdate
review note
review result for title
review result for rhythm
rhythm 2
original rhythm 2
review result for rhythm 2
rhythm 3
original rhythm 3
review result for rhythm 3
rhythm 4
original rhythm 4
review result for rhythm 4
rhyme letters
original rhyme letters
rhyme letters review result
language
original language
language review resukt
suggested poem summary
original poem summary
summary review result
poem format
original poem format
poem format review result
hide the editors name
poem section correction view model
Correction Id
section id
rhythm
original rhythm
review result for rhythm
rhythm 2
original rhythm 2
review result for rhythm2
break from verse1 VOrder
review result for break from verse1 VOrder
break from verse2 VOrder
review result for break from verse2 VOrder
break from verse3 VOrder
review result for break from verse3 VOrder
break from verse4 VOrder
review result for break from verse3 VOrder
break from verse5 VOrder
review result for break from verse5 VOrder
break from verse6 VOrder
review result for break from verse6 VOrder
break from verse7 VOrder
review result for break from verse7 VOrder
break from verse8 VOrder
review result for break from verse8 VOrder
break from verse9 VOrder
review result for break from verse9 VOrder
break from verse10 VOrder
review result for break from verse10 VOrder
note
date
user Id
nickname
reviewed
reviewdate
review note
poem Id
poem Id
rhyme letters
original rhyme letters
rhyme letters review result
language
original language
language review resukt
poem format
original poem format
poem format review result
hide the editors name
poem summary
id
title
url => slug
excerpt text
whole poem sections
poem translation view model
id
language
poem id
translated title
published
comments or description
might be empty in anonymous apis
contributer name - might be empty in anonymous apis
datetime
translated verses
to string
Poet Complete Information
poet info
poet cat info
id
Poet Id
order
Title
Description
image url
suggested by id
published
selected
rejection cause
external normal size image url
Ganjoor Poet Specification view model
Id
Poet Id
order
Contents
published
suggested by id
rejection cause
Ganjoor Poet
id
name
description
urlslug
root cat id
short name
published on website
image url
birth year in lunar hijri
BirthYearInLHijri, for some poets it is only indicator of their century of birth and should not be relied as their valid birth date
death year in lunar hijri
DeathYearInLHijri, for some poets it is only indicator of their century of death and should not be relied as their valid death date
Home page pin order (zero means not pinned)
birth place
birth place latitude
birth place longitude
death place
death place latitude
death place longitude
report comment view model
comment id
reason code for better grouping: offensive, bogus, other
some explanotory text provided by reporter
moderation view model
record id
approved
review note
quoted poem view model
constructor
copy constructor
record id
poem id
poem
related poem id (this could be a poem we do not have it available)
this poem is written and should be displayed prior to the related poem
if the related poet poem has multiple poems related to this poem, which one is chosen to be shown at main poems pages?
this sort order can be used to pin a record on top
related poem peot death date in hijri (used for sorting)
related poem poet name
related poem poet url
related poem poet image
full title
full url
couplet 1 verse 1
is main part
couplet 1 verse 2
is main part
couplet 1 index
related couplet 1 verse 1
is main part
related couplet 1 verse 2
is main part
related couplet 1 index
description
published (approved)
when a poem contains more than one quoted couplet from another one this should be more than 1
poems (same poem) are claimed by both poets
poet id (redundant for simplifying queries)
related poet id
related indirectly
approved
review note
suggested by
Ganjoor Verse View Model
global id, auto generated (missing in Ganjoor Desktop database)
vorder
position
text
GanjoorSiteBanner PUT ViewModel
alternate text
target url
active
Ganjoor Site Banner View Model
id
image url
alternate text
target url
active
Id
poet name
poet image url
poem full title
sample: /hafez/ghazal/sh1
couplet index
verse1 text
verse2 text
DateTime
private note for bookmark
verse translation view mode
verse
translated text
Ganjoor Verse View Model
global id, auto generated (missing in Ganjoor Desktop database)
vorder
couplet index
position
GanjoorPoemSection index
second GanjoorPoemSection index
third GanjoorPoemSection index
forth GanjoorPoemSection index
text
language id
couplet summary
Ganjoor Poem related music track model
id
poem id
a
track type
artist name
artist url
album name
album url
track name
track url
description
broken link
golha id
approved
instead of deleting rejected songs keep track of them
rejection cause
Suggested by user id (only filled for review)
Suggested by user name (only filled for review)
to string
Related Image Type
musueum.ganjoor.net link
external link
Poem Related Images
link id
Image Order
poem related image type
thumbnail image url
target page url
alternate text
is text original source
poem id
poem url
poem full title
poem + verse order
poem id
verse order
history of suggested songs by a user
approved
rejected
Import Job
Job Type
music catalogue album
id
singer id
singer
name
url
tracks
music catalogue singer
id
name
url
poet image
user image id
albums
music catalogue track
id
album id
album
name
url
blocked from suggestion
reason
track is purely music and no singing is done through it
http://www.golha.co.uk offline catalogue
id
name
url
programs
Golha Program
id
GolhaCollection Id
GolhaCollection
title
program order
url
mp3
tracks
id
GolhaProgram Id
GolhaProgram
track no
timing
title
singer id
singer
blocked from suggestion
reason
track is purely music and no singing is done through it
Golha Program View Model
id
title
program order
url
mp3
Golha Track View Model
id
track no
timing
title
Note Type
private
public
User Note
Id
User Id
User
Master Record Id
Master Record
Item Record Id
Item Record
DateTime
Is Updated by User
Last Modified
Private / Public
content
In Reply to Other Note
Reference Note Id
Status
(Public) User Notes Abuse Report
Id
Note Id
Note
some explanotory text provided by reporter
reporting user Id (nullable to allow deleting users and keeping this part of data if needed)
reporting user
user note report view model
note Id
reason text
New User Note For Artifact
Artifact / Item Id
Note Type
Contents
Reference Note Id
(Public) User Notes Abuse Report View Model
Id
some explanotory text provided by reporter
note
Safe User Note View Model
Id
User Id
User Name (FirstName + SurName)
user image id
DateTime
Is Updated by User
Last Modified
Private / Public
content
Reference Note Id
Status
Related Entity (Artifact/Item) Name
It is set only in cummulative api calls
Realated entity Image Id
It is set only in cummulative api calls
Realated entity Friendly Url (for artifact items it would be ParentFiendlyUrl/ItemFriendlyUrl )
It is set only in cummulative api calls
Related entity external normal size image url
Related Item Artifact Name
It is set only in cummulative api calls
child notes
It os set only in certain cases
prepare note datetime
Author
Id
Name
Name in original language
bio
Cover Image
Cover Image Id
external image url
Last Modified
Author Role
Id
Author
Role
a book might have different PDFBook or MultiVolumePDFCollection instances
Id
book name
description
Cover Image
Cover Image Id
external cover image url
Last Modified
Authors
Attributes
pdf books
Book Script Type
Printed
Manuscript
id
cat id
cat full title
cat full url
start from this poem
book id
book title
page number
threshold
queue time
started
start time
last update
updated by user
current poem id
progress
current page number
finished
finish time
Multi Volume Book
Id
book id
book
Name
Description
volume count
pdf books
OCR Queued Item
id
PDF Book Id
PDF Book
Id
book id
book
Publish Status
Title
secondary or complementary title
authors (descriptive)
ISBN
description
language
is translation
translators (descriptive)
title in original language
publisher (descriptive)
publishing date (descriptive)
publishing location (descriptive)
publishing number (تیراژ)
claimed page count
MultiVolumePDFCollection Id
MultiVolumePDFCollection
Volume Order
Date/Time
Last Modified for caching purposes
PDF File
external url for PDF File
Cover Image
Cover Image Id
external cover image url
original source name
original source url
original file url
contributers
Pages
page count
Attributes
file check sum
original file name
storage folder name
Book Script Type
PDF Source Id
PDF Source
tags view models
Binary Tagged Items
Titles of Items in Contents
ocred
ocr date time
book text
PDF Page
Id
PDF Book Id
page number
Thumbnail Image
Thumbnail Image Id
external thumbnail image url
description
Last Modified
Attributes
full resolution image width
full resolution image height
ocred
ocr date time
page text
pdf book
tags view models
PDF Source (Web Sites)
id
Name
Url
Description
a fake PDFBook for scheduling downloads
Id
Download Order
Title
authors (descriptive)
description
language
is translation
translators (descriptive)
original source name
original source url
original file url
processed
process result
result id
Author Role Count
Role
Counts
New PDFBook view model
PDF File Path
skip uploading to external FTP Site
book id
Title
secondary or complementary title
authors (descriptive)
ISBN
description
language
is translation
translators (descriptive)
title in original language
publisher (descriptive)
publishing date (descriptive)
publishing location (descriptive)
publishing number (تیراژ)
claimed page count
MultiVolumePDFCollection Id
Volume Order
original source name
original source url
original file url
writer id
writer 2 id
writer 3 id
writer 4 id
translator id
translator 2 id
translator 3 id
translator 4 id
collector id (مصحح)
collector 2 id (مصحح)
Other contributing role
other contributing role
Other contributing role 2
other contributing role 2
PDF Source Id
Book Script Type
PDFBook Ganjoor Link Suggestion
Ganjoor Post Id
ganjoor url
ganjoor title
pdf book id
page number
is this the text original source?
PDF Page OCR Data View Model
Id
full resolution image width
full resolution image height
ocred
page text
Upload Session
Id
Session Type
User
User Id
Upload Start Time
Upload End Time
Process Start Time
Process End Time
Process Progress
Status
Uploaded Files
Upload Session File
Id
Upload Session Id
ContentDisposition
ContentType
FileName
Length
Name
File Path
File check sum for mp3 files
Process Result
Process Result Message
Upload Session Process Status
Not Started
Started
Finished
Upload Session Types
Generic
New Audio
New or replace audio
Uploaded Item View Model
filename
process result
process result message
Upload End Time
Upload User Name
Process Start Time
progress progress
process end time
Artifact Item Service
get all artifacts (including CoverImage info but not items or attributes info)
get tagged publish artifacts (including CoverImage info but not items or tagibutes info)
gets specified artifact info (including CoverImage + images + attributes)
get specific artifact info with limited number of images
get artifact images according to start and count params
gets specified artifact info (including CoverImage + images + tagibutes)
edit master record
Set Artifact Cover Item Index
get tag bundle by frindly url
get max lastmodified artifact date for caching purposes
get all tags
get tag bu friendly url
add tag
edit tag
changes order of tags based on their position in artifacts
true => up, false => down
the other tag which its Order has been changed
changes order of tags based on their position in artifact items
true => up, false => down
the other tag which its Order has been changed
add artifact tag value
changes order of tag values based on their position in an artifact
true => up, false => down
the other tag value which its Order has been changed
changes order of tag values based on their position in an item
true => up, false => down
the other tag value which its Order has been changed
get tag value bundle by frindly url
get tag value by frindly url
edit artifact tagibute value
apply on all same value tags
remove artfiact tag value
add item tag value
edit item tag value
apply on all same value tags
remove item tag value
gets specified artifact item info (including images + attributes)
update artifact item
add new artifact
import from external resources
loc/princeton/harvard/qajarwomen/hathitrust/penn/cam/bl/folder/walters/cbl
119
golestan-baysonghori
reschedule jobs
due to a bug in loc json outputs some artifacts with more than 1000 pages were downloaded incompletely
import jobs
Bookmark Artifact
get artifact user bookmarks
Bookmark Item
get item user bookmarks
update bookmark note
delete user bookmark
///
get user bookmarks (artifacts and items)
Add Note to Artifact
Add Note to Artifact Item
Edit Note
sending null here means user is a moderator
delete note
sending null here means user is a moderator or the note is being deleted in a recursive delete of referenced notes
list of notes deleted
get artifact private user notes
get artifact public user notes
get item artifact private user notes
get item artifact item public user notes
Get All USer Notes
Get All Public Notes
suggest ganjoor link
get Unsynchronized image count
finds what the method name suggests
get suggested ganjoor links
Review Suggested Link
remove ganjoor link
Temporary api
Synchronize suggested link
get suggested pinterest links
suggest pinterest link
Review Suggested Pinterest Link
remove pinterest link
Synchronize suggested pinterest link
an incomplete prototype for removing artifacts
start filling GanjoorLink table OriginalSource values
report a public note
id of report record
Get a list of reported notes
delete a report for abuse in public user notes
delete a reported user note (accept the complaint)
start removing original images
Search Artifacts
search artifact items
start setting an artifact items as text original source
upload artifact to external server
create images for ganjoor
create images for ganjoor - offline
add item to an artifact
ai
donation service
new donation
delete donation
update donation
new expense
update expense
delete expense
parse html of https://ganjoor.net/donate/ and fill the records
regenerate donations page
returns all donations
get donation by id
returns all expenses
get expense by id
Show Donating Information (temporary switch off/on)
faq service interface
get categories
get category by id
add a new faq category
update an existing faq category
delete a faq category
get pinned items
get category items
get item by id
add a new faq item
update an existing faq item
delete a faq item
numbering service
add numbering
update an existing numbering (only name)
delete numbering
get numbering by id
get all numberings
get numberings for a cat
get numberings for direct subcats of parent cat
get all numbering patterns for a couplet
start counting
generate missing default numberings and start counting
Ganjoor Poems Content Privider Service
Get List of poets
get poet by id
get poet by url
poet image id by url
get cat by id
get cat by url
Update category extra info
get list of books
generate missing book covers
get page by url
get page url by id
get redirect url for a url
delete page
delete a poem
Get Poem By Id
get poem verses
Get Poem By Url
get poem recitations (PlainText/HtmlText are intentionally empty)
get poem sections
get user up votes for the recitations of a poem
get poem images by id (some fields are intentionally field with blank or null),
EntityImageId : the most important data field, image url is {WebServiceUrl.Url}/api/images/thumb/{EntityImageId}.jpg or {WebServiceUrl.Url}/api/images/norm/{EntityImageId}.jpg
get poem related songs
get poem comments
get a single comment information (replies are not included)
get a section related sections
poem id
section index
if sent 0 or less returns all items
send poem corrections
last unreviewed user correction for a poem
user suggested songs
get user or all corrections
if sent empty returns all corrections
effective corrections for poem
get correction by id
delete unreviewed user corrections for a poem
get next unreviewed correction
unreview correction count
moderate poem correction
break a poem from a verse forward
update related sections
next unreviewed track
get track of user song suggestions
suggest song
get unreviewed count
review song
direct insert song
get song by id
modify a published song
delete poem song by id
new comment
update user's own comment
link or unlink user's own comment to a coupletIndex
if null then unlinks
couplet summary
delete a reported comment
delete user own comment
delete anybody's comment
publish awaiting comment
get recent comments
Guid.Empty
report a comment
id of report record
delete a report
Get list of reported comments
Get Similar Poems accroding to prosody and rhyme informations
language tagged poem sections
modify page
modify poem => only these fields: NoIndex, RedirectFromFullUrl, MixedModeOrder
modify poet
create new poet
delete poet
chaneg poet image
returns metre list (ordered by Rhythm)
get a random poem (2 = from hafez)
import from sqlite
import a catgory from sqlite
Apply corrections from sqlite
export to sqlite
start generating gdb files
examine site pages for broken links
examine comments for long links
start filling poems couplet indices
regenerate poem full titles to fix an old bug
start finding rhymes for single couplets
separate verses in poem.PlainText with Environment.NewLine instead of SPACE
clean cache for paeg by id
clean cache for page by url
clean cache for page by comment
page modifications history
get old version
Search
batch rename
re sulg cat poems
find poem rhyme
find poem section rhyme
find category poem rhymes
Start finding missing rhthms
find poem rhythm
find category poem rhymes
generate category TOC
directly insert generated TOC
start generating sub cats TOC
build sitemap
build tj.ganjoor.net site map
start updating stats page
start updating mundex page
Switch Bookmark for couplet
Bookmark couplet if it is not
delete user bookmark
///
to make sure a user can not delete another user's bookmarks
modify bookmark private note
to make sure a user can not modify another user's bookmarks
get user ganjoor bookmarks (only Id, CoupletIndex and DateTime are valid)
get verse bookmarks
get user bookmarks (artifacts and items)
regenerate half centuries
get centuries with published poets
start generating related sections info
get next ganjoor section probable metre
get a list of ganjoor poem sections probable metres
save ganjoor poem probable metre
problable metre id
return list of suggested spec lines
returns specfic suggested line for poet
next unpublished suggested line for poets
npublished suggested lines count for poets
add a suggestion for poets spec lines
modify a suggestion for poets spec lines
reject a suggestion for poets spec lines
delete published suggested spec line
delete a category
set category poems language tag
set category poem format tag for poems consisting of a single whole poem section
regenerate TOCs
Finding Category Poems Duplicates
list of category saved duplicated poems
manually add a duplicate for a poems
delete duplicate
start removing category duplicates
sectionizing poems
start band couplets fix
get couplet sections
get all poem sections
regenerate poem sections (dangerous: wipes out existing data)
get a specific poem section
delete a poem section
last unreviewed user correction for a section
get user section corrections
if sent empty returns all corrections
send a correction for a section
moderate poem section correction
delete unreviewed user corrections for a poem section
get next unreviewed correction for a poem section
unreviewed poem section correction count
get section correction by id
effective corrections for section
regenerate category related sections
transfer poems and sections from a meter to another one
add poem geo tag
update poem tag
delete poem tag
get poem tags ordered by LunarDateTotalNumber then by Id
get a categoty poem tags
synchronize naskban links
number of synched items
justify naskban links
import naskban ganjoor matchings
import paper sources from museum
discover poet naskban paper sources
category paper sources
mark naskban links as human reviewed
mark naskban links a text original for a category
delete poem related naskban images by url
get category poem related images
filling poem formats
extracting quoted poems
regenerate related poems pages
generate related poems page
discover related poems
get quoted poems for a poem
two poems quoted records
get quoted poems
get quoted by id
insert quoted poem
update quoted poem
delete quoted by id
suggest new quote
get user or all quoted suggestions
if sent empty returns all suggestions
next unmoderated quoted poem
unmoderated quoted poems count
moderate quoted poems
tag with sources
update digital sources stats
add page
build word counts
fill CategoryWordCounts.RowNmbrInCat
fill CategoryWordCountSummaries
category words count
category words summary
tajik import from sqlite
tajik poets
tajik page by url
search tajik poems
fill couplet summaries using open ai
fill poem summaries using open ai
geo tag poems using AI
translation service implementation
add language
update an existing language
delete language
get langauge by id
get all languages
add or update poem translation
get translation
-1 all languages
get last language the user contributed to its translation
get translation by id
get all poem translations (for export utility)
geo location service
add new location
update an existing location
delete location
get location by id
get all locations
IArtifactService implementation
IArtifactService implementation
IArtifactService implementation
IArtifactService implementation
IArtifactService implementation
IArtifactService implementation
IArtifactService implementation
IArtifactService implementation
IArtifactService implementation
IArtifactService implementation
IArtifactService implementation
IArtifactService implementation
IArtifactService implementation
IArtifactService implementation
IArtifactService implementation
IArtifactService implementation
IArtifactService implementation
start setting an artifact items as text original source
start filling GanjoorLink table OriginalSource values
import from http://www.qajarwomen.org
43117279
atame
http://www.qajarwomen.org/fa/items/1018A10.html
from http://www.bl.uk
grenville_xli_f001r
from http://cudl.lib.cam.ac.uk
MS-RAS-00258
import from https://viewer.cbl.ie
119
golestan-baysonghori
from https://curiosity.lib.harvard.edu
example: https://curiosity.lib.harvard.edu/islamic-heritage-project/catalog/40-990114893240203941
from https://catalog.hathitrust.org
006814127
from IIIF manifest
example: https://viewer.cbl.ie/viewer/api/v1/records/Per_268/manifest/ or https://iiif.bodleian.ox.ac.uk/iiif/manifest/bcbfd832-086b-4874-80f8-87500e0de704.json
from https://www.loc.gov
m084
boostan1207
plmp
due to a bug in loc json outputs some artifacts with more than 1000 pages were downloaded incompletely
from http://www.library.upenn.edu/
MEDREN_9949222153503681
import from server folder
C:\Tools\batches\florence
shahname-florence
https://t.me/dr_khatibi_abolfazl/888
start appending from server folder
from http://www.thedigitalwalters.org/01_ACCESS_WALTERS_MANUSCRIPTS.html
W619
golestan-walters-01
start removing original images
upload artifact to external server
from http://pudl.princeton.edu/
dj52w476m
get all artifacts (including CoverImage info but not items or tagibutes info)
get tagged publish artifacts (including CoverImage info but not items or tagibutes info)
gets specified artifact info (including CoverImage + images + tagibutes)
get specific artifact info with limited number of images
get artifact images according to start and count params
gets specified artifact info (including CoverImage + images + tagibutes)
edit master record
Set Artifact Cover Item Index
get tag bundle by frindly url
get max lastmodified artifact date for caching purposes
get all tags
get tag bu friendly url
get tag value by frindly url
add tag
edit tag
changes LastModified field value for tagged artifacts and items
changes order of tags based on their position in artifacts
true => up, false => down
the other tag which its Order has been changed
changes order of tags based on their position in artifact items
true => up, false => down
the other tag which its Order has been changed
get tag value bundle by frindly url
add artifact tag value
remove artfiact tag value
edit artifact tag value
apply on all same value tags
add item tag value
remove item tag value
edit item tagibute value
apply on all same value tags
changes order of tag values based on their position in an artifact
true => up, false => down
the other tag value which its Order has been changed
changes order of tag values based on their position in an item
true => up, false => down
the other tag value which its Order has been changed
gets specified artifact item info (including images + tagibutes)
update artifact item
add new artifact
import from external resources
pdf/loc/princeton/harvard/qajarwomen/hathitrust/penn/cam/bl/folder/walters/cbl/append/iiif
119/foldername
golestan-baysonghori/artifact id
upload artifact to external server
upload artifact to external server
reschedule jobs
an incomplete prototype for removing artifacts
import jobs
Bookmark Artifact
get artifact user bookmarks
Bookmark Item
get item user bookmarks
update bookmark note
delete user bookmark
///
get user bookmarks (artifacts and items)
Add Note to Artifact
Add Note to Artifact Item
Edit Note
delete note
sending null here means user is a moderator or the note is being deleted in a recursive delete of referenced notes
list of notes deleted
get artifact private user notes
recursvie call to build notes tree
get artifact public user notes
get item artifact private user notes
recursvie call to build notes tree for iten
get item artifact item public user notes
Get All USer Notes
Get All Public Notes
report a public note
id of report record
delete a report for abuse in public user notes
delete a reported user note (accept the complaint)
Get a list of reported notes
suggest ganjoor link
get Unsynchronized image count
finds what the method name suggests
get suggested ganjoor links
Review Suggested Link
remove ganjoor link
Temporary api
Synchronize suggested link
get suggested pinterest links
suggest pinterest link
Review Suggested Pinterest Link
remove pinterest link
Synchronize suggested pinterest link
Search Artifacts
search artifact items
add item to an artifact
Database Contetxt
Picture File Service
Configuration
Background Task Queue Instance
User Service
Messaging service
Ganjoor Service
constructor
British Library Tile Downloader And Mixer
Constructor
find image encodder
تبدیلگر CorrectionReviewResult
تبدیل به رشته
donation service
new donation
update donation
delete donation
new expense
update expense
delete expense
returns all donations
get donation by id
returns all expenses
get expense by id
donation page row
date
amount
donor
usage
remaining
parse html of https://ganjoor.net/donate/ and fill the records
regenerate donations page
Show Donating Information (temporary switch off/on)
Database Context
Background Task Queue Instance
Ganjoor Service
configuration
constructor
faq service implementation
get categories
get category by id
add a new faq category
update an existing faq category
delete a faq category
get pinned items
get category items
get item by id
add a new faq item
update an existing faq item
delete a faq item
Database Context
constructor
Ganjoor User Service
IMemoryCache
Ganjoor Service
Sign Up Email Subject
subject
Sign Up Email Html Content
html content
Start signup process using email
finalize signup and assign his or him comments to him or her
modify existing user /*update related entities cache*/
remove user data
numbering service implementation
add numbering
update an existing numbering (only name)
delete numbering
get numbering by id
get all numberings
get numberings for a cat
get numberings for direct subcats of parent cat
get all numbering patterns for a couplet
start counting
generate missing default numberings and start counting
Database Context
Background Task Queue Instance
constructor
poem format convertor
تبدیل به رشته
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
Switch Bookmark for couplet
Bookmark couplet if it is not
Bookmark Verse
bookmark comment
get user ganjoor bookmarks (only Id, CoupletIndex and DateTime are valid)
get verse bookmarks
delete user bookmark
///
to make sure a user can not delete another user's bookmarks
modify bookmark private note
to make sure a user can not modify another user's bookmarks
get user bookmarks (artifacts and items)
category word counts
category words summary
build word counts
fill CategoryWordCounts.RowNmbrInCat
fill CategoryWordCountSummaries
set category poem format tag for poems consisting of a single whole poem section
set category poems language tag
re sulg cat poems
batch rename
list of category saved duplicated poems
Update category extra info
find category poem rhymes
get centuries with published poets
regenerate half centuries
tag with sources
update digital sources stats
Finding Category Poems Duplicates
start removing category duplicates
find category poem rhymes
directly insert generated TOC
generate category TOC
make plain text
separate verses in poem.PlainText with Environment.NewLine instead of SPACE
examine site pages for broken links
examine comments for long links
start filling poems couplet indices
regenerate poem full titles to fix an old bug
start finding rhymes for single couplets
transfer poems and sections from a meter to another one
moderate poem correction
moderate poem section correction
get user section corrections
if sent empty returns all corrections
effective corrections for section
last unreviewed user correction for a section
send a correction for a section
delete unreviewed user corrections for a poem section
get next unreviewed correction for a poem section
get section correction by id
unreview poem section correction count
start updating stats page
synchronize naskban links
synchronize naskban links
number of synched items
mark naskban links as human reviewed
mark naskban links a text original for a category
delete poem related naskban images by url
justify naskban links
import naskban ganjoor matchings
import naskban ganjoor matchings
number of synched items
fill couplet summaries using open ai
fill poem summaries using open ai
geo tag poems using AI
category paper sources
discover poet naskban paper sources
import paper sources from museum
return list of suggested spec lines
returns specific suggested line for poets
next unpublished suggested line for poets
upublished suggested lines count for poets
add a suggestion for poets spec lines
modify a suggestion for poets spec lines
delete a suggestion for poets spec lines
delete published suggested spec line
add poem geo tag
update poem tag
delete poem tag
get poem tags ordered by LunarDateTotalNumber then by Id
get a categoty poem tags
filling poem formats
sectionizing poems
filter secion verses
get couplet sections
get all poem sections
regenerate poem sections (dangerous: wipes out existing data)
get a specific poem sections
delete a poem section
start band couplets fix
Start finding missing rhthms
get next ganjoor poem probable metre
get a list of ganjoor poems probable metres
save ganjoor poem probable metre
problable metre id
moderate quoted poems
suggest new quote
get user or all quoted suggestions
if sent empty returns all suggestions
next unmoderated quoted poem
unmoderated quoted poems count
discover related poems
regenerate related poems pages
generate related poems page
parse related pages
get quoted by id
insert quoted poem
update quoted poem
delete quoted by id
get quoted poems
get quoted poems for a poem
two poems quoted records
extracting quoted poems
parse related pages
get a section related sections
poem id
section index
if sent 0 or less returns all items
regenerate category related sections
update related sections info (after metreId or rhyme for one of these sections changes)
start generating related sections info
build sitemap
build tj.ganjoor.net site map
get poem related songs
user suggested songs
suggest song
get unreviewed count
next unreviewed track
get track of user song suggestions
review song
direct insert song
get song by id
modify a published song
delete a poem song by id
start generating gdb files
export to sqlite
Apply corrections from sqlite
import from sqlite
import a catgory from sqlite
make html text
start updating stats page
tajik poets
tajik page by url
Search
You need to run this scripts manually on the database before using this method:
CREATE FULLTEXT CATALOG [TajikPoemPlainTextCatalog] WITH ACCENT_SENSITIVITY = OFF AS DEFAULT
CREATE FULLTEXT INDEX ON [dbo].[TajikPoems](
[TajikPlainText] LANGUAGE 'English')
KEY INDEX [PK_TajikPoems] ON ([TajikPoemPlainTextCatalog], FILEGROUP [PRIMARY])
WITH (CHANGE_TRACKING = AUTO, STOPLIST = SYSTEM)
regenerate TOCs
start generating sub cats TOC
Get List of poets
get poet by id
get poet by url
poet image id by url
get cat by url
get list of books
generate missing book covers
get cat by id
get page url by id
clean cache for paeg by id
clean cache for page by url
clean cache for page by comment
get redirect url for a url
get page by url
get poem recitations (PlainText/HtmlText are intentionally empty)
get poem whole sections
get user up votes for the recitations of a poem
get poem comments
get a single comment information (replies are not included)
new comment
update user's own comment
link or unlink user's own comment to a coupletIndex
if null then unlinks
couplet summary
delete a reported comment
publish awaiting comment
delete anybody's comment
delete user own comment
get recent comments
report a comment
id of report record
delete a report
Get list of reported comments
get poem images by id (some fields are intentionally field with blank or null),
EntityImageId : the most important data field, image url is {WebServiceUrl.Url}/api/images/thumb/{EntityImageId}.jpg or {WebServiceUrl.Url}/api/images/norm/{EntityImageId}.jpg
Get Poem By Url
get poem verses
Get Poem By Id
sections
delete unreviewed user corrections for a poem
send poem correction
last unreviewed user correction for a poem
get user or all corrections
if sent empty returns all corrections
effective corrections for poem
get correction by id
get next unreviewed correction
unreview correction count
random poem id from hafez sonnets and old c.ganjoor.net service
get a random poem from hafez
Get Similar Poems accroding to prosody and rhyme informations
language tagged poem sections
Search
You need to run this scripts manually on the database before using this method:
CREATE FULLTEXT CATALOG [GanjoorPoemPlainTextCatalog] WITH ACCENT_SENSITIVITY = OFF AS DEFAULT
CREATE FULLTEXT INDEX ON [dbo].[GanjoorPoems](
[PlainText] LANGUAGE 'English')
KEY INDEX [PK_GanjoorPoems]ON ([GanjoorPoemPlainTextCatalog], FILEGROUP [PRIMARY])
WITH (CHANGE_TRACKING = AUTO, STOPLIST = SYSTEM)
modify page
modify poem => only these fields: NoIndex, RedirectFromFullUrl, MixedModeOrder
break a poem from a verse forward
update related sections
return page modifications history
get old version
returns metre list (ordered by Rhythm)
modify poet
create new poet
delete poet
delete a page
delete a poem
delete a category
chaneg poet image
find poem rhyme
find poem section rhyme
find poem rhythm
manually add a duplicate for a poems
delete duplicate
get category poem related images
add page
aggressive cache
Database Context
Configuration
Background Task Queue Instance
IAppUserService instance
Messaging service
Image File Service
IMemoryCache
http client
options service
constructor
translation service implementation
add language
update an existing language
delete language
get langauge by id
get all languages
add or update poem translation
get last language the user contributed to its translation
get all poem translations (for export utility)
get translation by id
get translation
Database Context
constructor
geo location service implementation
add new location
update an existing location
delete location
get location by id
get all locations
Database Context
constructor
Persian specific text utility class
convert persian text to simple pinglish
equaivalnet for persian characters
Language Utilitis
Persian Alphabet
English Alphabet
Check to see if input Contains Only Specific Characters
make text searchable
find rhyme
format money
format datetime
Music Catalgue Service Implementation
get golha collection programs
get golha program tracks
Configuration
Database Contetxt
constructor
manipulating picture files
recover from files
add new picture
pass empty if you want a generic date based folder
returns image info
Rotate Image in 90 deg. multiplicants: 90, 180 or 270
find image encodder
returns image file stream
فرمت تصاویر بندانگشتی و ...
image/jpeg
عرض تصویر با اندازه نرمال - جهت نمایش در صفحات
/// طول تصویر با اندازه نرمال - جهت نمایش در صفحات
عرض تصویر بندانگشتی
طول تصویر بندانگشتی
image info cache
Image Storage Path
Generated Cropped Image Based On ThumbnailCoordinates For Notes
Database Contetxt
Configuration
Simple Image Storage (not storing multiple image sizes) for creating small cropped images
memory cache
constructor
poet photo suggestion service
return list of suggested photos for a poet
returns a single suggested photo
suggest a new photo for a poet
next unpublished suggested photo for poets
unpublished suggested photos count for poets
modify a suggested photo for poets
delete a suggested photo for poets
delete published suggested photo
Database Context
picture file service
Messaging service
IAppUserService instance
Configuration
constructor
Queued FTP Upload Service Implementation
add upload (you should call ProcessQueue manually)
s
process queue
reset queue
get queued ftp uploads
Database Context
Configuration
Background Task Queue Instance
constructor
creates an RSS feed from recitations
build rss
Role Service Implementation
gets list of SecurableItem, should be reimplemented in end user applications
constructor
ganjoor.net banners service
Add site banner
modify site banner
delete site banner
get site banners
get a random site banner
Database Context
Image File Service
IMemoryCache
constructor
User Visits Tracking Service Implementation
add record
delete record
start or stop tracking user
get user history
options service
Database Context
constructor
Audio Narration Service Implementation
returns list of narrations
send Guid.Empty if you want all narrations
returns list of publish recitations
get category top one recitations
check if a category has any recitations
get published recitation by id
return selected narration information
Delete recitation
Gets Verse Sync Range Information
narration id
validate PoemNarrationViewModel
updates metadata for narration
build profiles from exisng narrations data
User Id which becomes owner of imported data
error string if occurs
Initiate New Upload Session for audio
Save uploaded file
finalize upload session (add files)
Moderate pending narration
retry publish unpublished narrations
Get Upload Session (including files)
Get User Profiles
Get User Default Profile
validating narration profile
Add a narration profile
Update a narration profile
Delete a narration profile
Get uploads descending by upload time
if userId is empty all user uploads would be returned
publishing tracker data
Transfer Recitations Ownership
move recitaions of an artist to the first position
Synchronization Queue
report an error in a recitation
get errors reported for recitations
reject a reported error for recitations and notify the reporter (and deletes the report)
accepts a reported error for recitations and notify the reporter and recitation owner (and deletes the report)
accepts a reported error for recitations, add mistake to approve the mistake and notify the reporter and recitation owner (and deletes the report)
remove approved mistake
edit approved mistake text
compute poem recitations order
up vote a recitation
recitation id
revoke recitaion up vote
recitaion id
switches recitation upvote
upvote status
get user upvoted recitations
check recitaions with missing files and add them to reported errors list
Upload Enabled (temporary switch off/on for upload)
Configuration
Database Contetxt
Background Task Queue Instance
Messaging service
Users service
memory cache
ganjoor service
constructor
Music Catalogue Service
get golha collection programs
get golha program tracks
manipulating picture files
add new picture
pass empty if you want a generic date based folder
recover from files
returns image info
returns image file stream
Rotate Image in 90 deg. multiplicants: 90, 180 or 270
Get Encoder
Generate Cropped Image Based On ThumbnailCoordinates For Notes
Image Storage Path
poet photo suggestion service;
return list of suggested photos for a poet
returns a single suggested photo
suggest a new photo for a poet
next unpublished suggested photo for poets
unpublished suggested photos count for poets
modify a suggested photo for poets
delete a suggested photo for poets
delete published suggested photo
Queued FTP Upload Service
add upload (you should call ProcessQueue manually)
s
process queue
reset queue
get queued ftp uploads
Audio Narration Service
returns list of narrations
send Guid.Empty if you want all narrations
returns list of publish narrations (if poetId or catId is non-zero its ordered by poemId ascending if not it is ordered by publish date descending)
get category top recitations
check if a category has any recitations
get published recitation by id
return selected narration information
Delete recitation (recitation should belong to userId)
Gets Verse Sync Range Information
narration id
updates metadata for narration
build profiles from exisng narrations data
User Id which becomes owner of imported data
error string if occurs
Initiate New Upload Session for audio
Save uploaded file
finalize upload session (add files)
Moderate pending narration
Get Upload Session (including files)
Get User Profiles
Get User Default Profile
Add a narration profile
Update a narration profile
Delete a narration profile
Transfer Recitations Ownership
Get uploads descending by upload time
if userId is empty all user uploads would be returned
publishing tracker data
move recitaions of an artist to the first position
Synchronization Queue
report an error in a recitation
get errors reported for recitations
reject a reported error for recitations and notify the reporter (and deletes the report)
accepts a reported error for recitations, change status of the recitation to rejected and notify the reporter and recitation owner (and deletes the report)
accepts a reported error for recitations, add mistake to approve the mistake and notify the reporter and recitation owner (and deletes the report)
remove approved mistake
edit approved mistake text
compute poem recitations order
up vote a recitation
recitation id
revoke recitaion up vote
recitaion id
switches recitation upvote
upvote status
get user upvoted recitations
check recitaions with missing files and add them to reported errors list
retry publish unpublished narrations
Upload Enabled (temporary switch off/on for upload)
Add site banner
modify site banner
delete site banner
get site banners
get a random site banner
User Visits Tracking Service
add record
delete record
start or stop tracking user
get user history
ganjoor poem tools
get an excerpt for the poem
url
جهت ذخیره، دریافت و پردازش مخازن مجموعه های شعرها به کار می رود
ذخیرۀ لیستی از GDBInfoها در یک فایل xml
دریافت یک فایل xml و تبدیل آن به لیستی از GDBInfoها
اطلاعات فایل صوتی شعر
سازنده
شناسۀ شعر
شناسۀ فایل صوتی با شروع از 1 برای هر شعر
مسیر فایل
شرح
آیا همگام شده
ساختار اطلاعات همگام سازی
ترتیب مصرع (-1 نشانگر آغاز فایل صوتی و -2 نشانگر پایان آن است)
زمان در فایل صوتی بر حسب میلی ثانیه
اطلاعات همگام سازی
نشانی دریافت فایل صوتی
آیا لینک دریافت فایل صوتی مستقیم است
شناسۀ یکتای اطلاعات همگام سازی
امضای یکتای فایل صوتی
محاسبه چک سام فایل
آیا اطلاعات همگام سازی آپلود شده؟
تبدیل به رشته
شرح
Warning: not always filled
Warning: Rarely filled
پردازشگر ذخیره و بارگذاری لیستهای اشعار
ذخیره در فایل
ذخیره در فایل
بارگذاری از فایل