UNPKG

eksi-sozluk

Version:
794 lines (707 loc) 54.8 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>EksiMember.js - Documentation</title> <script src="scripts/prettify/prettify.js"></script> <script src="scripts/prettify/lang-css.js"></script> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css"> <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css"> <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css"> </head> <body> <input type="checkbox" id="nav-trigger" class="nav-trigger" /> <label for="nav-trigger" class="navicon-button x"> <div class="navicon"></div> </label> <label for="nav-trigger" class="overlay"></label> <nav> <li class="nav-link nav-home-link"><a href="index.html">Home</a></li><li class="nav-heading">Tutorials</li><li class="nav-item"><a href="tutorial-01-getting-started.html">Getting Started</a></li><li class="nav-item"><a href="tutorial-02-profile.html">Profile</a></li><li class="nav-item"><a href="tutorial-03-trash.html">Trash</a></li><li class="nav-item"><a href="tutorial-04-account.html">Account</a></li><li class="nav-item"><a href="tutorial-05-titles.html">Titles</a></li><li class="nav-item"><a href="tutorial-06-entries-and-drafts.html">Entries & Drafts</a></li><li class="nav-item"><a href="tutorial-07-users.html">Users</a></li><li class="nav-item"><a href="tutorial-08-tags.html">Tags</a></li><li class="nav-item"><a href="tutorial-09-upload-and-delete-image.html">Upload & Delete Image</a></li><li class="nav-item"><a href="tutorial-10-questions.html">Questions</a></li><li class="nav-item"><a href="tutorial-11-miscellaneous.html">Miscellaneous</a></li><li class="nav-heading">Classes</li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="AuthError.html">AuthError</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="CollectionBase.html">CollectionBase</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="CollectionBase.html#first">first</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="CollectionBase.html#last">last</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="CollectionBase.html#next">next</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="CollectionBase.html#prev">prev</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="DraftEntry.html">DraftEntry</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="DraftEntry.html#change">change</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="DraftEntry.html#dismiss">dismiss</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="DraftEntry.html#publish">publish</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="DraftEntry.html#retrieve">retrieve</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="DraftTitle.html">DraftTitle</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="EksiMember.html">EksiMember</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#agenda">agenda</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#cancelEmailAddressChange">cancelEmailAddressChange</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#changeEmailAddress">changeEmailAddress</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#changeLoginUsername">changeLoginUsername</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#changePassword">changePassword</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#createBackup">createBackup</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#createEntry">createEntry</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#debeEntries">debeEntries</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#deleteAccount">deleteAccount</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#deleteImage">deleteImage</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#drafts">drafts</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#emptyTrash">emptyTrash</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#entries">entries</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#entryById">entryById</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#events">events</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#followedUserFavoriteEntries">followedUserFavoriteEntries</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#followedUserTitles">followedUserTitles</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#isEmailAddressInChangeStatus">isEmailAddressInChangeStatus</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#isNewEventExist">isNewEventExist</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#isNewMessageExist">isNewMessageExist</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#me">me</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#pinEntry">pinEntry</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#questionsInAgenda">questionsInAgenda</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#questionsInToday">questionsInToday</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#removePin">removePin</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#retrieve">retrieve</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#rookieTitles">rookieTitles</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#search">search</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#tags">tags</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#titlesByTag">titlesByTag</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#today">today</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#todayInHistory">todayInHistory</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#trashEntries">trashEntries</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#untaggedTitles">untaggedTitles</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#uploadImage">uploadImage</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiMember.html#user">user</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="EksiSozluk.html">EksiSozluk</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiSozluk.html#agenda">agenda</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiSozluk.html#createToken">createToken</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiSozluk.html#debeEntries">debeEntries</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiSozluk.html#entries">entries</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiSozluk.html#entryById">entryById</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiSozluk.html#isAuthenticated">isAuthenticated</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiSozluk.html#isRecaptchaRequired">isRecaptchaRequired</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiSozluk.html#login">login</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiSozluk.html#loginWithToken">loginWithToken</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiSozluk.html#questionsInAgenda">questionsInAgenda</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiSozluk.html#questionsInToday">questionsInToday</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiSozluk.html#search">search</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiSozluk.html#tags">tags</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiSozluk.html#titlesByTag">titlesByTag</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiSozluk.html#todayInHistory">todayInHistory</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiSozluk.html#untaggedTitles">untaggedTitles</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EksiSozluk.html#user">user</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Entry.html">Entry</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="Entry.html#retrieve">retrieve</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="EntryCollection.html">EntryCollection</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EntryCollection.html#createEntry">createEntry</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EntryCollection.html#first">first</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EntryCollection.html#last">last</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EntryCollection.html#next">next</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EntryCollection.html#prev">prev</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EntryCollection.html#retrieve">retrieve</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="EntryForMember.html">EntryForMember</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EntryForMember.html#deleteFromTrash">deleteFromTrash</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EntryForMember.html#downvote">downvote</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EntryForMember.html#favorite">favorite</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EntryForMember.html#listFavoritedAuthors">listFavoritedAuthors</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EntryForMember.html#listFavoritedRookies">listFavoritedRookies</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EntryForMember.html#recoverFromTrash">recoverFromTrash</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EntryForMember.html#removevote">removevote</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EntryForMember.html#retrieve">retrieve</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EntryForMember.html#unfavorite">unfavorite</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="EntryForMember.html#upvote">upvote</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="FollowedUserFavoriteEntry.html">FollowedUserFavoriteEntry</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="FollowedUserTitle.html">FollowedUserTitle</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Image.html">Image</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="ImageCollection.html">ImageCollection</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="ImageCollection.html#retrieve">retrieve</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="NotFoundError.html">NotFoundError</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Question.html">Question</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="SearchResults.html">SearchResults</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="SearchResults.html#retrieve">retrieve</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Tag.html">Tag</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="TagForMember.html">TagForMember</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="TagForMember.html#follow">follow</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="TagForMember.html#unfollow">unfollow</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Title.html">Title</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="TitleCollection.html">TitleCollection</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="TitleCollection.html#first">first</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="TitleCollection.html#last">last</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="TitleCollection.html#next">next</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="TitleCollection.html#prev">prev</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="TitleCollection.html#retrieve">retrieve</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="TrashEntry.html">TrashEntry</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="TrashEntry.html#deleteFromTrash">deleteFromTrash</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="TrashEntry.html#downvote">downvote</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="TrashEntry.html#favorite">favorite</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="TrashEntry.html#listFavoritedAuthors">listFavoritedAuthors</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="TrashEntry.html#listFavoritedRookies">listFavoritedRookies</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="TrashEntry.html#recoverFromTrash">recoverFromTrash</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="TrashEntry.html#removevote">removevote</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="TrashEntry.html#retrieve">retrieve</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="TrashEntry.html#unfavorite">unfavorite</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="TrashEntry.html#upvote">upvote</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="UkteCollection.html">UkteCollection</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="UkteCollection.html#retrieve">retrieve</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="User.html">User</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="User.html#entries">entries</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="User.html#favoriteAuthors">favoriteAuthors</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="User.html#favoritedEntries">favoritedEntries</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="User.html#favorites">favorites</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="User.html#images">images</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="User.html#lastVotedEntries">lastVotedEntries</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="User.html#mostLikedEntries">mostLikedEntries</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="User.html#retrieve">retrieve</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="User.html#selfFavoritedEntries">selfFavoritedEntries</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="User.html#ukteler">ukteler</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="UserEntryCollection.html">UserEntryCollection</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="UserEntryCollection.html#first">first</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="UserEntryCollection.html#last">last</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="UserEntryCollection.html#next">next</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="UserEntryCollection.html#prev">prev</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="UserEntryCollection.html#retrieve">retrieve</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="UserFavoriteAuthorCollection.html">UserFavoriteAuthorCollection</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="UserFavoriteAuthorCollection.html#retrieve">retrieve</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="UserForMember.html">UserForMember</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="UserForMember.html#block">block</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="UserForMember.html#blockTitles">blockTitles</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="UserForMember.html#clearNote">clearNote</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="UserForMember.html#entries">entries</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="UserForMember.html#favoriteAuthors">favoriteAuthors</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="UserForMember.html#favoritedEntries">favoritedEntries</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="UserForMember.html#favorites">favorites</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="UserForMember.html#follow">follow</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="UserForMember.html#images">images</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="UserForMember.html#lastVotedEntries">lastVotedEntries</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="UserForMember.html#mostLikedEntries">mostLikedEntries</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="UserForMember.html#retrieve">retrieve</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="UserForMember.html#selfFavoritedEntries">selfFavoritedEntries</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="UserForMember.html#sendMessage">sendMessage</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="UserForMember.html#setNote">setNote</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="UserForMember.html#ukteler">ukteler</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="UserForMember.html#unblock">unblock</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="UserForMember.html#unblockTitles">unblockTitles</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="UserForMember.html#unfollow">unfollow</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="VoteError.html">VoteError</a></span></li><li class="nav-heading"><a href="global.html">Globals</a></li><li class="nav-item"><span class="nav-item-type type-member">M</span><span class="nav-item-name"><a href="global.html#COLLECTION_TYPES">COLLECTION_TYPES</a></span></li><li class="nav-item"><span class="nav-item-type type-member">M</span><span class="nav-item-name"><a href="global.html#TAGS">TAGS</a></span></li><li class="nav-item"><span class="nav-item-type type-member">M</span><span class="nav-item-name"><a href="global.html#TITLE_TYPES">TITLE_TYPES</a></span></li> </nav> <div id="main"> <h1 class="page-title">EksiMember.js</h1> <section> <article> <pre class="prettyprint source linenums"><code>const axios = require('axios') const qs = require('querystring') const setCookie = require('set-cookie-parser') const fs = require('fs') const FormData = require('form-data') const EksiGuest = require('./EksiGuest') const { URLS } = require('./constants') const { TITLE_TYPES } = require('./enums') const { tags, trashEntries, debeEntries, createEntry } = require('./lib') const { EntryForMember, UserForMember, TitleCollection, EntryCollection, SearchResults, TrashEntry, TagForMember, DraftEntry } = require('./models') /** * Eksi Sozluk member class. * * @augments EksiGuest */ class EksiMember extends EksiGuest { /** * Username. * * @type {string} */ username /** * Is new message available? * * @type {boolean} */ isNewMessageAvailable /** * Is new event available? * * @type {boolean} */ isNewEventAvailable /** * Create an Eksi Sozluk member session. * * @param {object} httpClient Axios HTTP client. * @param {string} cookies Cookies in string. */ constructor (httpClient, cookies) { super(httpClient) this.cookies = cookies } /** * Retrieve the user. * * @returns {Promise} Promise. */ retrieve () { return new Promise((resolve, reject) => { axios({ url: URLS.BASE, method: 'GET', headers: { cookie: this.cookies } }).then(res => { const newMessageRegex = /href="\/mesaj"\n*\s*class="new-update"/g const isNewMessageAvailable = newMessageRegex.test(res.data) this.isNewMessageAvailable = isNewMessageAvailable const newEventRegex = /title="olaylar olaylar"\n*\s*class="new-update"/g const isNewEventAvailable = newEventRegex.test(res.data) this.isNewEventAvailable = isNewEventAvailable const usernameRegex = new RegExp( '(?&lt;=a href="/biri/)(.*)(?=" title=")', 'u' ) const username = usernameRegex.exec(res.data)[0] this.username = username resolve() }) }) } /** * Search things. * * @param {string} text Search text. * @returns {Promise.&lt;SearchResults>} A promise for the search results. */ async search (text) { const results = new SearchResults(this._request, text, this.cookies) await results.retrieve() return results } /** * Check if unread message exist. * * @returns {Promise.&lt;boolean>} New message available or not. */ isNewMessageExist () { return new Promise((resolve, reject) => { axios({ url: URLS.BASE, method: 'GET', headers: { cookie: this.cookies } }).then(res => { const regex = /href="\/mesaj"\n*\s*class="new-update"/g const isNewMessageAvailable = regex.test(res.data) this.isNewMessageAvailable = isNewMessageAvailable resolve(isNewMessageAvailable) }) }) } /** * Check if unread event exist. * * @returns {Promise.&lt;boolean>} New event available or not. */ isNewEventExist () { return new Promise((resolve, reject) => { axios({ url: URLS.BASE, method: 'GET', headers: { cookie: this.cookies } }).then(res => { const regex = /title="olaylar olaylar"\n*\s*class="new-update"/g const isNewEventAvailable = regex.test(res.data) this.isNewEventAvailable = isNewEventAvailable resolve(isNewEventAvailable) }) }) } /** * Checking if your email address is in change status. * * @returns {Promise.&lt;boolean>} Email address waiting for changing or not. */ isEmailAddressInChangeStatus () { return new Promise((resolve, reject) => { axios({ url: URLS.SETTINGS_EMAIL, method: 'GET', headers: { cookie: this.cookies } }).then(res => { const isEmailAddressInChangingStatus = res.data.includes( 'değişikliği iptal et' ) resolve(isEmailAddressInChangingStatus) }) }) } /** * Cancel the email address change. * * @returns {Promise.&lt;boolean>} A promise for cancel the email address change. */ cancelEmailAddressChange () { return new Promise((resolve, reject) => { axios({ url: URLS.SETTINGS_EMAIL, method: 'GET', headers: { cookie: this.cookies } }) .then(res => { // validate page is in email change status const isWaitingForCancelEmail = res.data.includes( 'değişikliği iptal et' ) if (!isWaitingForCancelEmail) { return reject(new Error('Not waiting for change email.')) } return res }) .then(res => { // parse csrf token const csrfRegex = new RegExp( '(?&lt;=input name="__RequestVerificationToken" type="hidden" value=")(.*)(?=" />)', 'u' ) const csrfToken = csrfRegex.exec(res.data)[0] const cookies = setCookie.parse(res.headers['set-cookie'], { map: true }) const csrfTokenInCookies = cookies.__RequestVerificationToken.value return { csrfToken, csrfTokenInCookies } }) .then(async ({ csrfToken, csrfTokenInCookies }) => { // cancel email address change const _res = await axios({ url: URLS.SETTINGS_CANCEL_UPDATE_EMAIL, method: 'POST', headers: { Cookie: `__RequestVerificationToken=${csrfTokenInCookies}; ${this.cookies}` }, data: qs.stringify({ __RequestVerificationToken: csrfToken }) }) return _res }) .then(res => { const isSucc = res.status === 200 if (!isSucc) { return reject(new Error('An unknown error occurred.')) } resolve() }) }) } /** * Change your password. * * @param {string} currPassword Your current password. * @param {string} newPassword A new password. * @returns {Promise.&lt;boolean>} A promise for change password. */ changePassword (currPassword, newPassword) { return new Promise((resolve, reject) => { axios({ url: URLS.SETTINGS_PASSWORD, method: 'GET', headers: { cookie: this.cookies } }) .then(res => { // parse csrf token const csrfRegex = new RegExp( '(?&lt;=input name="__RequestVerificationToken" type="hidden" value=")(.*)(?=" />)', 'u' ) const csrfToken = csrfRegex.exec(res.data)[0] const cookies = setCookie.parse(res.headers['set-cookie'], { map: true }) const csrfTokenInCookies = cookies.__RequestVerificationToken.value return { csrfToken, csrfTokenInCookies } }) .then(async ({ csrfToken, csrfTokenInCookies }) => { // change password const _res = await axios({ url: URLS.SETTINGS_PASSWORD, method: 'POST', headers: { Cookie: `__RequestVerificationToken=${csrfTokenInCookies}; ${this.cookies}` }, data: qs.stringify({ __RequestVerificationToken: csrfToken, OldPassword: currPassword, Password: newPassword, PasswordConfirm: newPassword }), validateStatus: status => { // successful response returns 404 status so accept 4xx responses return status >= 200 &amp;&amp; status &lt; 500 } }) return _res }) .then(res => { const isSucc = res.data.includes('şifreniz güncellendi') &amp;&amp; res.status === 404 const isCurrPasswordWrong = res.data.includes( 'şu anki şifrenizi yanlış girdiniz' ) const isUnknownErr = res.data.includes( '&lt;title>büyük başarısızlıklar sözkonusu - ekşi sözlük&lt;/title>' ) const isTooManyRequest = res.status === 429 if (isTooManyRequest) { return reject(new Error('Too many request for changing password.')) } if (isCurrPasswordWrong) { return reject(new Error('Current password is wrong.')) } if (!isSucc || isUnknownErr) { return reject(new Error('An unknown error occurred.')) } // update cookies with the new token const cookies = setCookie.parse(res.headers['set-cookie'], { map: true }) const newToken = cookies.a.value this.cookies = `a=${newToken}` resolve() }) }) } /** * Delete your account. * * @param {string} password Your current password. * @param {boolean} [hideEntries=false] Hide your entries. * @returns {Promise} Promise. */ deleteAccount (password, hideEntries = false) { return new Promise((resolve, reject) => { axios({ url: URLS.SETTINGS_DELETE_ACCOUNT, method: 'POST', headers: { Cookie: this.cookies }, data: qs.stringify({ Password: password, HideEntries: hideEntries }) }).then(res => { resolve() }) }) } /** * Change login username. * * @param {string} newUsername Your new login username. * @param {string} password Your current password. * @returns {Promise} Promise. */ changeLoginUsername (newUsername, password) { return new Promise((resolve, reject) => { axios({ url: URLS.SETTINGS_CHANGE_USERNAME, method: 'GET', headers: { cookie: this.cookies } }) .then(res => { // parse csrf token const csrfRegex = new RegExp( '(?&lt;=input name="__RequestVerificationToken" type="hidden" value=")(.*)(?=" />)', 'u' ) const csrfToken = csrfRegex.exec(res.data)[0] const cookies = setCookie.parse(res.headers['set-cookie'], { map: true }) const csrfTokenInCookies = cookies.__RequestVerificationToken.value return { csrfToken, csrfTokenInCookies } }) .then(async ({ csrfToken, csrfTokenInCookies }) => { // change password const _res = await axios({ url: URLS.SETTINGS_CHANGE_USERNAME, method: 'POST', headers: { Cookie: `__RequestVerificationToken=${csrfTokenInCookies}; ${this.cookies}` }, data: qs.stringify({ __RequestVerificationToken: csrfToken, Password: password, NewLoginName: newUsername }), validateStatus: status => { // successful response returns 404 status so accept 4xx responses return status >= 200 &amp;&amp; status &lt; 500 } }) return _res }) .then(res => { const isSucc = res.data.includes( 'giriş için kullandığınız kullanıcı adını güncelledik' ) &amp;&amp; res.status === 404 if (!isSucc) { return reject(new Error('An unknown error occurred.')) } resolve() }) }) } /** * Change your email address. * * @param {string} currEmailAddress Your current email address. * @param {string} newEmailAddress A new email address. * @param {string} password Your current password. * @returns {Promise} A promise for change email address. */ changeEmailAddress (currEmailAddress, newEmailAddress, password) { return new Promise((resolve, reject) => { axios({ url: URLS.SETTINGS_EMAIL, method: 'GET', headers: { cookie: this.cookies } }) .then(res => { // validate page is in email change status const isWaitingForCancelEmail = res.data.includes( 'değişikliği iptal et' ) if (isWaitingForCancelEmail) { return reject(new Error('Email address already changed.')) } return res }) .then(res => { // parse csrf token const csrfRegex = new RegExp( '(?&lt;=input name="__RequestVerificationToken" type="hidden" value=")(.*)(?=" />)', 'u' ) const csrfToken = csrfRegex.exec(res.data)[0] const cookies = setCookie.parse(res.headers['set-cookie'], { map: true }) const csrfTokenInCookies = cookies.__RequestVerificationToken.value return { csrfToken, csrfTokenInCookies } }) .then(async ({ csrfToken, csrfTokenInCookies }) => { // change password const _res = await axios({ url: URLS.SETTINGS_EMAIL, method: 'POST', headers: { Cookie: `__RequestVerificationToken=${csrfTokenInCookies}; ${this.cookies}` }, data: qs.stringify({ __RequestVerificationToken: csrfToken, CurrentEmail: currEmailAddress, Password: password, NewEmail: newEmailAddress, ConfirmNewEmail: newEmailAddress }) }) return _res }) .then(res => { const isSucc = res.data.includes('değişikliği iptal et') &amp;&amp; res.status === 200 if (!isSucc) { return reject(new Error('An unknown error occurred.')) } resolve() }) }) } /** * Create backup. * * @returns {Promise} A promise for create backup. */ createBackup () { return new Promise((resolve, reject) => { axios({ url: URLS.SETTINGS_CREATE_BACKUP, method: 'POST', responseType: 'arraybuffer', headers: { Cookie: this.cookies }, validateStatus: status => { // for catch five minute error return status >= 200 &amp;&amp; status &lt; 500 } }).then(res => { const isSucc = res.status === 200 const isFiveMinuteError = res.data.includes('yedekleri 5 dakika ara ile verebiliyoruz.') &amp;&amp; res.status === 404 if (isFiveMinuteError) { return reject(new Error('You can create backup every 5 minutes.')) } if (!isSucc) { return reject(new Error('An unknown error occurred.')) } resolve(res.data) }) }) } /** * Pin an entry to the profile. * * @param {number} entryId Entry ID which user owns. * @returns {Promise} Promise. */ pinEntry (entryId) { return new Promise((resolve, reject) => { axios .post(URLS.PIN, qs.stringify({ entryId }), { headers: { cookie: this.cookies, 'x-requested-with': 'XMLHttpRequest' } }) .then(res => { if (res.data.Success) { resolve() } else { reject(new Error('It is not your entry or entry is not yours.')) } }) }) } /** * Remove pin from profile. * * @returns {Promise} Promise. */ removePin () { return new Promise((resolve, reject) => { axios .post(URLS.PIN_REMOVE, null, { headers: { cookie: this.cookies, 'x-requested-with': 'XMLHttpRequest' } }) .then(res => { if (res.data !== true) { return reject(new Error('No pinned entry found.')) } resolve() }) }) } /** * Create entry. * * @param {string} title Title. * @param {string} content Entry content. * @param {object} options Parameters that user can specify. * @param {boolean} [options.saveAsDraft=false] Save as draft. * @returns {Promise.&lt;(EntryForMember|DraftEntry)>} Created entry. */ async createEntry (title, content, options = {}) { return await createEntry( this._request, title, content, options, this.cookies ) } /** * Fetch entry by id. * * @param {number} entryId Entry Id. * @returns {Promise.&lt;EntryForMember>} A promise for the entry. */ async entryById (entryId) { const entry = new EntryForMember(this._request, entryId, this.cookies) await entry.retrieve() return entry } /** * Fetch entries. * * @param {string} title Title itself. * @param {object} options Parameters that user can specify. * @param {number} [options.page=1] Page number. * @returns {Promise.&lt;EntryCollection>} A promise for the entries. */ async entries (title, options = {}) { const _options = { ...options, cookies: this.cookies } const collection = new EntryCollection(this._request, title, _options) await collection.retrieve() return collection } /** * Fetch user. * * @param {string} username Entry Id. * @returns {Promise.&lt;UserForMember>} A promise for the entry. */ async user (username) { const user = new UserForMember(this._request, username, this.cookies) await user.retrieve() return user } /** * Fetch the user profile. * * @returns {Promise.&lt;UserForMember>} A promise for the entry. */ async me () { const user = new UserForMember(this._request, this.username, this.cookies) await user.retrieve() return user } /** * Fetch today entries. * * @param {object} options Parameters that user can specify. * @param {number} [options.page=1] Page number. * @returns {Promise.&lt;TitleCollection>} A promise for the titles of today. */ async today (options = {}) { const target = '/basliklar/bugun' const _options = { ...options, cookies: this.cookies } const collection = new TitleCollection(this._request, target, _options) await collection.retrieve() return collection } /** * Fetch rookie entries. * * @param {object} options Parameters that user can specify. * @param {number} [options.page=1] Page number. * @returns {Promise.&lt;TitleCollection>} A promise for the rookie titles. */ async rookieTitles (options = {}) { const target = '/basliklar/caylaklar' const _options = { ...options, cookies: this.cookies } const collection = new TitleCollection(this._request, target, _options) await collection.retrieve() return collection } /** * Fetch events. * * @returns {Promise.&lt;TitleCollection>} A promise for the titles of events. */ async events () { const target = '/basliklar/olay' const _options = { defaultEntryCount: 0, cookies: this.cookies } const collection = new TitleCollection(this._request, target, _options) await collection.retrieve() return collection } /** * Fetch draft entries. * * @param {object} options Parameters that user can specify. * @param {number} [options.page=1] Page number. * @returns {Promise.&lt;TitleCollection>} A promise for the titles of drafts. */ async drafts (options = {}) { const target = '/basliklar/kenar' const _options = { ...options, type: TITLE_TYPES.DRAFT, cookies: this.cookies } const collection = new TitleCollection(this._request, target, _options) await collection.retrieve() return collection } /** * Fetch followed user titles. * * @param {object} options Parameters that user can specify. * @param {number} [options.page=1] Page number. * @returns {Promise.&lt;TitleCollection>} A promise for the followed user titles. */ async followedUserTitles (options = {}) { const target = '/basliklar/takipentry' const _options = { ...options, type: TITLE_TYPES.FOLLOWED_USER, cookies: this.cookies } const collection = new TitleCollection(this._request, target, _options) await collection.retrieve() return collection } /** * Fetch followed user favorite entries. * * @param {object} options Parameters that user can specify. * @param {number} [options.