RMuseum
User login/logout/register/...
constructor
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)
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) 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
gets specified publish artifact item info (including images + attributes)
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
loc/princeton/harvard/qajarwomen/hathitrust/penn/cam/bl/folder/walters/cbl
119
golestan-baysonghori
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
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
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
start filling GanjoorLink table OriginalSource values
constructor
Artifact Service
IUserPermissionChecker instance
IMemoryCache
Captcha service
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
get list of published poets without their biography
get list of all poets (including unpublished ones) with their bio
poet by id
poet by url
update poet info (except for image)
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
batch rename cat poems
starts assigning poem rhymes
start assigning poem rhuthmes
generate category toc
start generating sub cats TOC
page by url
modify page
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 poem by id
not implemented yet
next/previous
get poem by url
not implemented yet
not implemented yet
not implemented yet
next/previous
get poem recitations (PlainText/HtmlText are intentionally empty)
get poem images (PlainText/HtmlText are intentionally empty)
get poem songs
suggest song for poem
get next unreviewed song
review song
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 recent comments
get logged on users recent comments
post new comment
edit user's own 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 comment
imports data from ganjoor SQLite database (form file)
Apply corrections from sqlite
export a poet to sqlite database
start exporting all poets
imports data from ganjoor MySql database
Get user public profile
Get Similar Poems accroding to prosody and rhyme informations
cannot be empty
can be empty
send 0 for all
return value is not complete or valid for some parts, you should use only the valid parts!
search
returns ganjoor metre list ordered by rhythm
find poem rhyme
analysis poem to find its prosody information
examine site pages for broken links
separate verses in poem.PlainText with Environment.NewLine instead of SPACE
start building sitemap
regenerate stats page
start updating mundex page
readonly mode
Ganjoor Service
IAppUserService instance
for client IP resolution
Image Service
IMemoryCache
Configuration
constructor
returns image stream
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
returns paginated published recitations, ordered by publish date descending
if PageSize is -1 or is more than 100 it resets to 100
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)
imports data from ganjoor MySql database
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
Makes recitations of فریدون فرحاندوز first recitations
Synchronization Queue
constructor
Artifact Service
IUserPermissionChecker instance
IAppUserService instance
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
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
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
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
نوع ویژگی
عادی
پیوند
جستجو
پیوند و جستجو
متن چپ به راست
بدون مقدار
عنوان در فهرست
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 item count
empty or null means this is last item
next image
empty or null means this is first item
prev image
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
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
reorder
review suggested songs
add song from any source
manage footer bannaers
donations
list of forms and their permissions
ganjoor user public profile
Id
user image
nick name
biography
web site
Bookmark Type
Private Bookmark
Public Favorite
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
Audio Review Status
All / Unfiltered (for queris)
Draft
pending for review
approved
Rejected
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
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
Ganjoor Post Id
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)
AudioSyncStatus
Review Status
Reviewer user
Reviewer user
Review Message
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
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
Poem Narration Moderation View Model
Moderation Result
Rejection Message
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
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
Link Type
Custom
Museum
Pinterest
Instagram
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
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
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
Ganjoor Category
id
poet_id
poet
text
parent_id
parent
url => slug
sample: /hafez/ghazal
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
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
Ganjoor Page Health Check log
id
referer url
broken link
multiple targets for a page
target url
Poem prosodic Metre
Id
Url Slug
Rythm
مفاعیلن مفاعیلن فعولن
Name
هزج مسدس محذوف
Description
Total Verse Count
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
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 actuallay 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
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
ganjoor.net site banner
id
banner image
image id
alternate text
target url
active
ganjoor TOC options
Ganjoor Verse
global id, auto generated (missing in Ganjoor Desktop database)
poem_id
poem
vorder
position
text
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/
معنی فیلد 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
Non-poem paragraph
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
Next Category without Ancestors/Children/Poems info
Previous Category without Ancestors/Children/Poems info
ancestors
cat children
poems
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
new comment model
Poem Id
comment
in reply to
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
Rhyme Analysis Result
rhyme
the verse analysis stopped at
modify page view model
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
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
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)
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
category
Next Poem
Previous Poem
verses
Recitations
Images
Songs
Comments
poem correction view model
poem Id
modified verses
rhythm
note
Verse Vorder / Text
verse order
text
poem summary
id
title
url => slug
excerpt text
Rythm
مفاعیلن مفاعیلن فعولن
rhyme letters
Poet Complete Information
poet info
poet cat info
Ganjoor Poet
id
name
description
urlslug
root cat id
short name
published on website
image url
report comment view model
comment id
reason code for better grouping: offensive, bogus, other
some explanotory text provided by reporter
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
Ganjoor Verse View Model
global id, auto generated (missing in Ganjoor Desktop database)
vorder
position
text
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
Image Order
poem related image type
thumbnail image url
target page url
alternate text
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
New User Note For Artifact
Artifact / Item Id
Note Type
Contents
Reference Note Id
Safe User Note View Model
Id
User Id
User Name (FirstName + SureName)
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 Item Artifact Name
It is set only in cummulative api calls
child notes
It os set only in certain cases
prepare note datetime
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)
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)
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
Temporary api
Synchronize suggested link
get suggested pinterest links
suggest pinterest link
Review Suggested Pinterest Link
Synchronize suggested pinterest link
an incomplete prototype for removing artifacts
start filling GanjoorLink table OriginalSource values
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)
Ganjoor Poems Content Privider Service
Get List of poets
get poet by idCra
get poet by url
poet image id by url
get cat by id
get cat by url
get page by url
get page url by id
delete page
Get Poem By Id
Get Poem By Url
get poem recitations (PlainText/HtmlText are intentionally empty)
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
next unreviewed track
suggest song
get unreviewed count
review song
direct insert song
new comment
update user's own comment
delete a reported comment
delete user own 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
modify page
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
Apply corrections from sqlite
export to sqlite
start generating gdb files
import GanjoorPage entity data from MySql
examine site pages for broken links
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
find poem rhyme
find category poem rhymes
find poem rhythm
find category poem rhymes
generate category TOC
start generating sub cats TOC
build sitemap
start updating stats page
start updating mundex page
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 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 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
from http://www.thedigitalwalters.org/01_ACCESS_WALTERS_MANUSCRIPTS.html
W619
golestan-walters-01
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)
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)
add new artifact
import from external resources
loc/princeton/harvard/qajarwomen/hathitrust/penn/cam/bl/folder/walters/cbl
119
golestan-baysonghori
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
suggest ganjoor link
get Unsynchronized image count
finds what the method name suggests
get suggested ganjoor links
Review Suggested Link
Temporary api
Synchronize suggested link
get suggested pinterest links
suggest pinterest link
Review Suggested Pinterest Link
Synchronize suggested pinterest link
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
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
Ganjoor User Service
IMemoryCache
Sign Up Email Subject
subject
Sign Up Email Html Content
html content
Forgot Password Email Subject
subject
Forgot Password Email Html Content
html content
finalize signup and assign his or him comments to him or her
modify existing user /*update related entities cache*/
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
IGanjoorService implementation
start updating stats page
import GanjoorPage entity data from MySql
build sitemap
start generating gdb files
export to sqlite
Apply corrections from sqlite
import from sqlite
make html text
start updating stats page
Get List of poets
get poet by id
get poet by url
poet image id by url
get cat by url
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 page by url
get poem recitations (PlainText/HtmlText are intentionally empty)
get poem comments
new comment
update user's own comment
delete a reported 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 By Id
get poem related songs
suggest song
get unreviewed count
next unreviewed track
review song
direct insert song
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
Search
You need to run this scripts manually on the database before using this method:
CREATE FULLTEXT CATALOG [GanjoorPoemPlainTextCatalog] WITH ACCENT_SENSITIVITY = OFF
ALTER TABLE [dbo].[GanjoorPoems] ADD CONSTRAINT [PK_GanjoorPoems] PRIMARY KEY CLUSTERED
(
[Id] ASC
) WITH(PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON[PRIMARY]
modify page
return page modifications history
get old version
returns metre list (ordered by Rhythm)
modify poet
create new poet
delete poet
delete page
chaneg poet image
batch rename
find poem rhyme
find category poem rhymes
find poem rhythm
find category poem rhymes
start generating sub cats TOC
generate category TOC
make plain text
separate verses in poem.PlainText with Environment.NewLine instead of SPACE
examine site pages for broken links
Database Context
Configuration
Background Task Queue Instance
IAppUserService instance
Messaging service
Image File Service
IMemoryCache
http client
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
import catalogue from ganjoor.net MySql db
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 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
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
Audio Narration Service Implementation
returns list of narrations
send Guid.Empty if you want all narrations
returns list of publish 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
imports data from ganjoor MySql database
User Id which becomes owner of imported data
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
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
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
Audio Narration Service
returns list of narrations
send Guid.Empty if you want all narrations
returns list of publish narrations
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
imports narration data from ganjoor MySql database
User Id which becomes owner of imported data
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
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
//https://mattfrear.com/2018/07/21/add-an-authorization-header-to-your-swagger-ui-with-swashbuckle-revisited/
url
جهت ذخیره، دریافت و پردازش مخازن مجموعه های شعرها به کار می رود
ذخیرۀ لیستی از GDBInfoها در یک فایل xml
اطلاعات فایل صوتی شعر
سازنده
شناسۀ شعر
شناسۀ فایل صوتی با شروع از 1 برای هر شعر
مسیر فایل
شرح
آیا همگام شده
ساختار اطلاعات همگام سازی
ترتیب مصرع (-1 نشانگر آغاز فایل صوتی و -2 نشانگر پایان آن است)
زمان در فایل صوتی بر حسب میلی ثانیه
اطلاعات همگام سازی
نشانی دریافت فایل صوتی
آیا لینک دریافت فایل صوتی مستقیم است
شناسۀ یکتای اطلاعات همگام سازی
امضای یکتای فایل صوتی
محاسبه چک سام فایل
آیا اطلاعات همگام سازی آپلود شده؟
تبدیل به رشته
شرح
Warning: not always filled
Warning: Rarely filled
پردازشگر ذخیره و بارگذاری لیستهای اشعار
ذخیره در فایل
ذخیره در فایل
بارگذاری از فایل