RMuseum User login/logout/register/... constructor Sign Up Email Subject subject Sign Up Email Html Content html content Forgot Password Email Subject subject Forgot Password Email Html Content html content Is Sign-up enabled? 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 review suggested ganjoor link mark suggested ganjoor link as synchronized 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 constructor Artifact Service IUserPermissionChecker instance IMemoryCache Captcha service Audit Log Controller Base constructor get list of poets poet by id poet by url cat by id cat by url page by url 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 imports data from ganjoor SQLite database updates poems text and html imports data from ganjoor MySql database Ganjoor Service IAppUserService instance 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 retry publish unpublished narrations 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 Generic Image Provider constructor Long Running Jobs constructor roles constructor Museum Database Context constructor 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 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 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 constructor Tags Binary Tagged Items Titles of Items in Contents Artifact Tag (RTag with grouped related RTagValues of Artifact) 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 list of forms and their permissions 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 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 https://ganjgah.ir/api/audio/file/{audio.Id}.xml Poem Plain Text Poem Html Text Moderation Result no moderation approve reject Poem Narration Moderation View Model Moderation Result Rejection Message RecitationPublishingTracker View Model Constructor 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 parameterless constructor constructor 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 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 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 default constructor parameterized constructor 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 cosntructor 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 Captcha Image Id Captcha Value Ganjoor Category id poet_id poet text parent_id parent url => slug sample: /hafez/ghazal Poem prosodic Metre Id Url Slug Rythm مفاعیلن مفاعیلن فعولن Name هزج مسدس محذوف Description Total Verse Count Ganjoor Page Type None Poet Page Cat Page Poem Page Prosody Similars Hashieha Page Similar Poems of two poets Prosody and Statistics 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 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 Ganjoor Poet cat_id field is removed, it is retrievable by querying where == and == null id name description 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 poem music track type all https://beeptunes.com/or http://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 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 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 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 category Next Poem Previous Poem verses Recitations Images Songs poem summary id title url => slug excerpt text Poet Complete Information poet info poet cat info Ganjoor Poet id name description urlslug root cat id 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 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 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 Constructor 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 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 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 Ganjoor Poems Content Privider Service Get List of poets get poet by id get poet by url get cat by id get cat by url get page by url 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 https://ganjgah.ir/api/images/thumb/{EntityImageId}.jpg or https://ganjgah.ir/api/images/norm/{EntityImageId}.jpg get poem related songs next unreviewed track suggest song get unreviewed count review song direct insert song get a random poem from hafez imports unimported poem data from a locally accessible ganjoor SqlLite database updates poems text import GanjoorPage entity data from MySql IArtifactService implementation IArtifactService implementation IArtifactService implementation IArtifactService implementation IArtifactService implementation IArtifactService implementation IArtifactService implementation IArtifactService implementation IArtifactService implementation IArtifactService implementation IArtifactService implementation IArtifactService implementation 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 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 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 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 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 constructor British Library Tile Downloader And Mixer Constructor find image encodder IGanjoorService implementation Get List of poets get poet by id get poet by url get cat by url get cat by id get page 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 https://ganjgah.ir/api/images/thumb/{EntityImageId}.jpg or https://ganjgah.ir/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 get a random poem from hafez imports unimported poem data from a locally accessible ganjoor SqlLite database updates poems text import GanjoorPage entity data from MySql Database Contetxt Configuration Background Task Queue Instance constructor Persian specific text utility class convert arabic characters to persian equivalents list of persian letters 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 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 constructor creates an RSS feed from recitations build rss Role Service Implementation gets list of SecurableItem, should be reimplemented in end user applications 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 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 Upload Enabled (temporary switch off/on for upload) Configuration Database Contetxt Background Task Queue Instance Messaging service Users 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 retry publish unpublished narrations publishing tracker data move recitaions of an artist to the first position Synchronization Queue Upload Enabled (temporary switch off/on for upload) //https://mattfrear.com/2018/07/21/add-an-authorization-header-to-your-swagger-ui-with-swashbuckle-revisited/ اطلاعات فایل صوتی شعر سازنده شناسۀ شعر شناسۀ فایل صوتی با شروع از 1 برای هر شعر مسیر فایل شرح آیا همگام شده ساختار اطلاعات همگام سازی ترتیب مصرع (-1 نشانگر آغاز فایل صوتی و -2 نشانگر پایان آن است) زمان در فایل صوتی بر حسب میلی ثانیه اطلاعات همگام سازی نشانی دریافت فایل صوتی آیا لینک دریافت فایل صوتی مستقیم است شناسۀ یکتای اطلاعات همگام سازی امضای یکتای فایل صوتی محاسبه چک سام فایل آیا اطلاعات همگام سازی آپلود شده؟ تبدیل به رشته شرح Warning: not always filled Warning: Rarely filled پردازشگر ذخیره و بارگذاری لیستهای اشعار ذخیره در فایل ذخیره در فایل بارگذاری از فایل