Вихідний код програмного продукту
String URI = String. Format («{0}stream/contents? output=json&n={2}&c={3}&s={1}», APIEndPoint, SubName, ItemCount, Continuation); String szPostData = String. Format («{0}={2}&i={1}», Starred? «a»: «r», FeedId, «user/-/state/com.google/starred»); String. Format («client=TheOldReaderWX&accountType=HOSTED_OR_GOOGLE&service=reader&Email={0}&Passwd={1}», user, pwd)); String URI = String. Format… Читать ещё >
Вихідний код програмного продукту (реферат, курсовая, диплом, контрольная)
Клас для роботи з API сервера:
using System;
using System.Collections.Generic;
using System. IO;
using System. Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System. Text;
using System.Threading.Tasks;
using Windows.UI.Popups;
namespace TheOldReader_WinX.
{.
class TheOldReader.
{.
private const String APIEndPoint = «https://theoldreader.com/reader/api/0/» ;
private string _token;
public string token.
{.
get { return _token; }.
set { _token = «GoogleLogin auth=» + value; }.
}.
public async Task LogIn (string user, string pwd).
{.
var output = await Post («https://theoldreader.com/reader/ api/0/accounts/ClientLogin» ,.
String.Format («client=TheOldReaderWX&accountType=HOSTED_OR_GOOGLE&service=reader&Email={0}&Passwd={1}», user, pwd));
try.
{.
token = output. Substring (output.IndexOf («Auth=»)).Replace (" Auth=", «»);
return true;
}.
catch.
{.
return false;
}.
}.
private async Task Post (String URI, String _PostData).
{.
var client = new HttpClient ();
client.DefaultRequestHeaders.TryAddWithoutValidation («Authorization: «, token);
HttpResponseMessage wcfResponse = await client. PostAsync (new Uri (URI), new StringContent (_PostData, Encoding. UTF8, «application/x-www-form-urlencoded»));
return await wcfResponse.Content.ReadAsStringAsync ();
}.
private async Task Get (String URI).
{.
var client = new HttpClient ();
client.BaseAddress = new Uri (URI);
client.DefaultRequestHeaders.TryAddWithoutValidation («Authorization: «, token);
return await client. GetStringAsync (URI);
}.
#region Params.
public async Task getTagList ().
{.
String API = «tag/list?output=json» ;
String URI = APIEndPoint + API;
return await Get (URI);
}.
public async Task getSubscriptionList ().
{.
String API = «subscription/list?output=json» ;
String URI = APIEndPoint + API;
return await Get (URI);
}.
public async Task getUnreadCount ().
{.
String API = «unread-count?output=json» ;
String URI = APIEndPoint + API;
return await Get (URI);
}.
public async Task getUserInfo ().
{.
String API = «user-info?output=json» ;
String URI = APIEndPoint + API;
return await Get (URI);
}.
public async Task getMoreItemsForSubscription (String SubName, int ItemCount, String Continuation).
{.
String URI = String. Format («{0}stream/contents? output=json&n={2}&c={3}&s={1}», APIEndPoint, SubName, ItemCount, Continuation);
return await Get (URI);
}.
public async Task getItemsForSubscription (String SubName, int ItemCount).
{.
String URI = String. Format («{0}stream/contents?output=json&n ={2}&s={1}», APIEndPoint, SubName, ItemCount);
return await Get (URI);
}.
public async Task getUnreadItemsForSubscription (String SubName, int ItemCount).
{.
String URI = String. Format («{0}stream/contents?output=json&xt=user/-/state/com.google/read&n={2}&s={1}», APIEndPoint, SubName, ItemCount);
return await Get (URI);
}.
//Получить все непрочитанные записи.
public async Task getAllUnreadItems (int ItemCount).
{.
String URI = String. Format («{0}stream/contents?output=json&xt=user/-/state/com.google/read&n={2}&s={1}», APIEndPoint, «user/-/state/com.google/reading-list», ItemCount);
return await Get (URI);
}.
//Получить все избранные записи.
public async Task getStarredItems ().
{.
String URI = String. Format («{0}stream/contents?output=json&xt=user/-/state/com.google/read&n={2}&s={1}», APIEndPoint, «user/-/state/com.google/starred», 1000);
return await Get (URI);
}.
//Получить все понравившиеся записи.
public async Task getLikedItems ().
{.
String URI = String. Format («{0}stream/contents?output=json&xt=user/-/state/com.google/read&n={2}&s={1}», APIEndPoint, «user/-/state/com.google/like», 1000);
return await Get (URI);
}.
//Отметить запись прочитанной.
public async Task markFeedItemRead (string ItemId, bool bRead).
{.
String PostData = String. Format («{0}=user/-/state/com.google/read&i={1}», bRead? «a»: «r», ItemId);
return await Post (APIEndPoint + «edit-tag», PostData);
}.
//Отметить все прочитанными.
public async Task markAllItemsAsRead (string FeedId).
{.
String PostData = String. Format («s={0}», FeedId);
return await Post (APIEndPoint + «mark-all-as-read», PostData);
}.
//Отметить несколько записей прочитанными.
public async Task markFeedItemsRead (List ItemIds, bool Read).
{.
return await changeTagOfItems («user/-/state/com.google/read», ItemIds, Read);
}.
//Отметить звездочкой.
public async Task starItem (string FeedId, bool Starred).
{.
String szPostData = String. Format («{0}={2}&i={1}», Starred? «a»: «r», FeedId, «user/-/state/com.google/starred»);
return await Post (APIEndPoint + «edit-tag», szPostData);
}.
//Отметить звездочкой несколько записей.
public async Task starItems (List FeedIds, bool Starred).
{.
return await changeTagOfItems («user/-/state/com.google/starred», FeedIds, Starred);
}.
//Изменить тег нескольких записей.
private async Task changeTagOfItems (string TagName, List FeedIds, bool Add).
{.
if (FeedIds≠ null && FeedIds. Count > 0).
{.
StringBuilder sb = new StringBuilder ();
sb.AppendFormat («{0}={1}», Add? «a»: «r», TagName);
foreach (String curItemId in FeedIds).
sb.AppendFormat («&i={0}», curItemId);
String PostData = sb. ToString ();
return await Post (APIEndPoint + «edit-tag», PostData);
}.
return «» ;
}.
//Переметить подписку в папку.
public async Task moveSubscriptionToFolder (string feedId, string folderId).
{.
String PostData = «» ;
if (!String.IsNullOrEmpty (folderId) && folderId≠ «user/-/state/com.google/reading-list»).
PostData = String. Format («ac=edit&s={0}&a={1}», feedId, folderId);
else.
PostData = String. Format («ac=edit&s={0}&r={1}», feedId, folderId);
return await Post (APIEndPoint + «subscription/edit», PostData);
}.
//Подписаться.
public async Task addSubscription (string FeedUrl).
{.
String PostData = «» ;
return await Post (APIEndPoint + «subscription/quickadd?quickadd=» + FeedUrl, PostData);
}.
//Отписаться.
public async Task unsubscribe (string feedId).
{.
String PostData = String. Format («ac=unsubscribe&s={0}», feedId);
return await Post (APIEndPoint + «subscription/edit», PostData);
}.
#endregion.
}.
}.
Отже даний додаток використовує найновіші функції UWP, його можна завантажити з магазина на ПК, телефон чи телевізор з Windows 10 і він буде виглядати та працювати на цих пристроях саме так як очікує того користувач.