Skip to content

Commit 9570e2d

Browse files
committed
Convert FeedData, adds new types for different feeds
1 parent b121f24 commit 9570e2d

File tree

2 files changed

+218
-31
lines changed

2 files changed

+218
-31
lines changed

Assets/_Project/Scripts/Data/DataManager.cs

Lines changed: 140 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,38 @@ void OnDisable()
2222
EventManager.StopListening("GetNewData", GetNewData);
2323
}
2424

25+
26+
27+
2528
// host and endpoint for API
2629
public string host;
2730
public string endpoint;
31+
2832
// the current data as string
2933
public static string current;
3034
// as Dict
31-
public static IList<FeedData> feeds;
35+
public static IList<FeedData> feeds = new List<FeedData>();
36+
37+
38+
// http://127.0.0.1:5000/api/feed/recent
3239

3340
private void Start()
3441
{
42+
// HOSTS
43+
44+
// live server
3545
host = "https://tallysavestheinternet.com/api/";
46+
// dev server
47+
host = "http://127.0.0.1:5000/api/";
48+
49+
50+
// ENDPOINTS
51+
3652
//endpoint = "feed/range/1/week"; // a whole week
37-
endpoint = "feed/recent"; // 20 recent
53+
endpoint = "feed/recent"; // 20 recent
54+
55+
56+
3857
}
3958

4059

@@ -65,24 +84,121 @@ public static IEnumerator GetRequest(string uri)
6584
Debug.Log(pages[page] + ":\nReceived: " + webRequest.downloadHandler.text);
6685

6786
// parse JSON array
68-
JArray feedsArray = JArray.Parse(webRequest.downloadHandler.text);
87+
JArray a = JArray.Parse(webRequest.downloadHandler.text);
88+
89+
6990

70-
feeds = feedsArray.Select(p => new FeedData
91+
92+
foreach (JObject item in a)
7193
{
72-
username = (string)p["username"],
73-
avatarPath = (string)p["avatarPath"],
74-
item = (string)p["item"],
75-
type = (string)p["type"],
76-
name = (string)p["name"],
77-
level = (int)p["level"],
78-
stat = (string)p["stat"],
79-
captured = (int)p["captured"],
80-
time = (DateTime)p["date"],
94+
// base class properties
95+
string _username = item.GetValue("username").ToString();
96+
string _avatarPath = item.GetValue("avatarPath").ToString();
97+
string _eventType = item.GetValue("eventType").ToString();
98+
string _createdAtStr = item.GetValue("createdAt").ToString();
99+
100+
// parse string to ISO 8601 format
101+
DateTime _createdAt = DateTime.Parse(_createdAtStr, null, System.Globalization.DateTimeStyles.RoundtripKind);
102+
103+
// parse eventData
104+
JObject d = JObject.Parse(item.GetValue("eventData").ToString());
105+
106+
if (_eventType == "attack")
107+
{
108+
feeds.Add(new AttackData
109+
{
110+
username = _username,
111+
avatarPath = _avatarPath,
112+
eventType = _eventType,
113+
createdAt = _createdAt,
114+
115+
name = (string)d["name"],
116+
type = (string)d["level"],
117+
selected = (bool)d["selected"]
118+
});
119+
}
120+
else if (_eventType == "badge")
121+
{
122+
feeds.Add(new BadgeData
123+
{
124+
username = _username,
125+
avatarPath = _avatarPath,
126+
eventType = _eventType,
127+
createdAt = _createdAt,
128+
129+
name = (string)d["name"],
130+
level = (int)d["level"]
131+
});
132+
}
133+
else if (_eventType == "consumable")
134+
{
135+
feeds.Add(new ConsumableData
136+
{
137+
username = _username,
138+
avatarPath = _avatarPath,
139+
eventType = _eventType,
140+
createdAt = _createdAt,
141+
142+
name = (string)d["name"],
143+
slug = (string)d["slug"],
144+
stat = (string)d["stat"],
145+
type = (string)d["type"],
146+
value = (int)d["value"]
147+
});
148+
}
149+
else if (_eventType == "disguise")
150+
{
151+
feeds.Add(new DisguiseData
152+
{
153+
username = _username,
154+
avatarPath = _avatarPath,
155+
eventType = _eventType,
156+
createdAt = _createdAt,
157+
158+
name = (string)d["name"],
159+
type = (string)d["type"]
160+
});
161+
}
162+
else if (_eventType == "monster")
163+
{
164+
feeds.Add(new MonsterData
165+
{
166+
username = _username,
167+
avatarPath = _avatarPath,
168+
eventType = _eventType,
169+
createdAt = _createdAt,
170+
171+
mid = (int)d["mid"],
172+
level = (int)d["level"],
173+
captured = (int)d["captured"],
174+
});
175+
}
176+
177+
178+
179+
180+
//Debug.Log(_eventType);
181+
}
182+
81183

82-
}).ToList();
83184

185+
//feeds = a.Select(p => new FeedData
186+
//{
187+
// username = (string)p["username"],
188+
// avatarPath = (string)p["avatarPath"],
189+
// eventType = (string)p["eventType"],
190+
// createdAt = (DateTime)p["createdAt"],
84191

85-
//Debug.Log(feedsArray[0]);
192+
// //type = (string)p["type"],
193+
// //name = (string)p["name"],
194+
// //level = (int)p["level"],
195+
// //stat = (string)p["stat"],
196+
// //captured = (int)p["captured"],
197+
198+
//}).ToList();
199+
200+
201+
////Debug.Log(a[0]);
86202
//Debug.Log(feeds.ToString());
87203

88204

@@ -91,11 +207,16 @@ public static IEnumerator GetRequest(string uri)
91207

92208
foreach (var feed in feeds)
93209
{
210+
211+
212+
94213
var line =
95-
feed.time + "\t" +
96-
feed.username + ", " + feed.item + ", " +
97-
feed.type + ", " + feed.name + ", " + feed.level +
98-
", " + feed.type;
214+
feed.createdAt + "\t" +
215+
feed.username + ", " + feed.eventType + ", " +
216+
//feed.type + ", " + feed.name + ", " + feed.level +
217+
//", " + feed.type
218+
""
219+
;
99220
current += line + "<br>";
100221

101222
//Debug.Log(line);

Assets/_Project/Scripts/Data/FeedData.cs

Lines changed: 78 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,88 @@ public class FeedData
55
{
66
public string username { get; set; }
77
public string avatarPath { get; set; }
8-
public string item { get; set; }
8+
public string eventType { get; set; }
9+
public string eventData { get; set; }
10+
public DateTime createdAt { get; set; }
11+
}
12+
13+
[System.Serializable]
14+
public class AttackData : FeedData
15+
{
16+
//"name": "DomainSwipe",
17+
//"type": "defense",
18+
//"selected": 1
19+
20+
public string name { get; set; }
921
public string type { get; set; }
22+
public bool selected { get; set; }
23+
}
24+
25+
[System.Serializable]
26+
public class BadgeData : FeedData
27+
{
28+
//"name": "long-distance-scroller",
29+
//"level": 3
30+
1031
public string name { get; set; }
1132
public int level { get; set; }
33+
}
34+
35+
[System.Serializable]
36+
public class ConsumableData : FeedData
37+
{
38+
//"name": "dont-be-evil",
39+
//"slug": "dont-be-evil-cake",
40+
//"stat": "accuracy",
41+
//"type": "cake",
42+
//"value": 0
43+
44+
public string name { get; set; }
45+
public string slug { get; set; }
1246
public string stat { get; set; }
47+
public string type { get; set; }
48+
public int value { get; set; }
49+
}
50+
51+
[System.Serializable]
52+
public class DisguiseData : FeedData
53+
{
54+
//"name": "mask-carnival-sky",
55+
//"type": "mask"
56+
57+
public string name { get; set; }
58+
public string type { get; set; }
59+
}
60+
61+
[System.Serializable]
62+
public class MonsterData : FeedData
63+
{
64+
//"mid": 625,
65+
//"level": 5,
66+
//"captured": 1
67+
68+
public int mid { get; set; }
69+
public int level { get; set; }
1370
public int captured { get; set; }
14-
public DateTime time { get; set; }
15-
16-
// "username": "andaughter",
17-
// "avatarPath": null,
18-
// "item": "monster",
19-
// "type": "0",
20-
// "name": "628",
21-
// "level": 22,
22-
// "stat": "0",
23-
// "captured": 0,
24-
// "date": "2020-08-20T17:44:39.000Z"
71+
}
72+
73+
[System.Serializable]
74+
public class TrackerData : FeedData
75+
{
76+
//"tracker": "gstatic.com",
77+
//"captured": 1
2578

79+
public string tracker { get; set; }
80+
public int captured { get; set; }
2681
}
82+
83+
[System.Serializable]
84+
public class StreamData : FeedData
85+
{
86+
//"tracker": "gstatic.com",
87+
//"captured": 1
88+
89+
public int score { get; set; }
90+
public int clicks { get; set; }
91+
public int likes { get; set; }
92+
}

0 commit comments

Comments
 (0)