}
#region Lists
- public HttpStatusCode GetLists(string user, long cursor, ref string content)
+ public HttpStatusCode GetLists(string user, long? cursor, ref string content)
{
Dictionary<string, string> param = new Dictionary<string, string>();
param.Add("screen_name", user);
- param.Add("cursor", cursor.ToString());
+
+ if (cursor != null)
+ param.Add("cursor", cursor.Value.ToString()); // API v1
+
return httpCon.GetContent(GetMethod,
CreateTwitterUri(HttpTwitter.API11Enabled ? "/1.1/lists/list.json" : "/1/lists.json"),
param,
null);
}
- public HttpStatusCode GetListsSubscriptions(string user, long cursor, ref string content)
+ public HttpStatusCode GetListsSubscriptions(string user, long? cursor, ref string content)
{
Dictionary<string, string> param = new Dictionary<string, string>();
param.Add("screen_name", user);
- param.Add("cursor", cursor.ToString());
+
+ if (cursor != null)
+ param.Add("cursor", cursor.Value.ToString()); // API v1
+
return httpCon.GetContent(GetMethod,
CreateTwitterUri(HttpTwitter.API11Enabled ? "/1.1/lists/subscriptions.json" : "/1/lists/subscriptions.json"),
param,
public string GetListsApi()
{
+ return HttpTwitter.API11Enabled ? this.GetListsApi11() : this.GetListsApi10();
+ }
+
+ private string GetListsApi10()
+ {
if (Twitter.AccountState != MyCommon.ACCOUNT_STATE.Valid) return "";
HttpStatusCode res = HttpStatusCode.BadRequest;
return "";
}
+ private string GetListsApi11()
+ {
+ if (Twitter.AccountState != MyCommon.ACCOUNT_STATE.Valid) return "";
+
+ HttpStatusCode res = HttpStatusCode.BadRequest;
+ IEnumerable<ListElement> lists;
+ var content = "";
+
+ try
+ {
+ res = twCon.GetLists(this.Username, null, ref content);
+ }
+ catch (Exception ex)
+ {
+ return "Err:" + ex.Message + "(" + MethodBase.GetCurrentMethod().Name + ")";
+ }
+
+ switch (res)
+ {
+ case HttpStatusCode.OK:
+ Twitter.AccountState = MyCommon.ACCOUNT_STATE.Valid;
+ break;
+ case HttpStatusCode.Unauthorized:
+ Twitter.AccountState = MyCommon.ACCOUNT_STATE.Invalid;
+ return Properties.Resources.Unauthorized;
+ case HttpStatusCode.BadRequest:
+ return "Err:API Limits?";
+ default:
+ return "Err:" + res.ToString() + "(" + MethodBase.GetCurrentMethod().Name + ")";
+ }
+
+ try
+ {
+ lists = MyCommon.CreateDataFromJson<List<TwitterDataModel.ListElementData>>(content)
+ .Select(x => new ListElement(x, this));
+ }
+ catch (SerializationException ex)
+ {
+ MyCommon.TraceOut(ex.Message + Environment.NewLine + content);
+ return "Err:Json Parse Error(DataContractJsonSerializer)";
+ }
+ catch (Exception ex)
+ {
+ MyCommon.TraceOut(ex, MethodBase.GetCurrentMethod().Name + " " + content);
+ return "Err:Invalid Json!";
+ }
+
+ content = "";
+ try
+ {
+ res = twCon.GetListsSubscriptions(this.Username, null, ref content);
+ }
+ catch (Exception ex)
+ {
+ return "Err:" + ex.Message + "(" + MethodBase.GetCurrentMethod().Name + ")";
+ }
+
+ switch (res)
+ {
+ case HttpStatusCode.OK:
+ Twitter.AccountState = MyCommon.ACCOUNT_STATE.Valid;
+ break;
+ case HttpStatusCode.Unauthorized:
+ Twitter.AccountState = MyCommon.ACCOUNT_STATE.Invalid;
+ return Properties.Resources.Unauthorized;
+ case HttpStatusCode.BadRequest:
+ return "Err:API Limits?";
+ default:
+ return "Err:" + res.ToString() + "(" + MethodBase.GetCurrentMethod().Name + ")";
+ }
+
+ try
+ {
+ lists = lists.Concat(MyCommon.CreateDataFromJson<List<TwitterDataModel.ListElementData>>(content)
+ .Select(x => new ListElement(x, this)));
+ }
+ catch (SerializationException ex)
+ {
+ MyCommon.TraceOut(ex.Message + Environment.NewLine + content);
+ return "Err:Json Parse Error(DataContractJsonSerializer)";
+ }
+ catch (Exception ex)
+ {
+ MyCommon.TraceOut(ex, MethodBase.GetCurrentMethod().Name + " " + content);
+ return "Err:Invalid Json!";
+ }
+
+ TabInformations.GetInstance().SubscribableLists = lists.ToList();
+ return "";
+ }
+
public string DeleteList(string list_id)
{
HttpStatusCode res = HttpStatusCode.BadRequest;