@@ -68,215 +68,130 @@ func TibiaFansitesV3(c *gin.Context) {
6868 }
6969
7070 // Creating empty PromotedFansitesData and SupportedFansitesData var
71- var PromotedFansitesData []Fansite
72- var SupportedFansitesData []Fansite
73-
74- // Running query over each tr in fansitesinnertable
75- ReaderHTML .Find ("#promotedfansitesinnertable tr" ).First ().NextAll ().Each (func (index int , s * goquery.Selection ) {
76- // #promotedfansitesinnertable
77- // #supportedfansitesinnertable
78-
79- // Storing HTML into FansiteTrHTML
80- FansiteTrHTML , err := s .Html ()
81- if err != nil {
82- log .Fatal (err )
83- }
84-
85- // Removing line breaks
86- FansiteTrHTML = TibiadataHTMLRemoveLinebreaksV3 (FansiteTrHTML )
87-
88- // Regex to get data for fansites
89- regex1 := regexp .MustCompile (`<td><a href="(.*)" target.*img .*src="(.*)" alt="(.*)"\/><\/a>.*<a href=".*">(.*)<\/a><\/td><td.*top;">(.*)<\/td><td.*top;">(.*)<\/td><td.*top;">(.*)<\/td><td.*<ul><li>(.*)<\/li><\/ul><\/td><td.*top;">(.*)<\/td>` )
90- subma1 := regex1 .FindAllStringSubmatch (FansiteTrHTML , - 1 )
91-
92- if len (subma1 ) > 0 {
93-
94- // ContentType
95- ContentTypeData := ContentType {}
96- var imgRE1 = regexp .MustCompile (`<img[^>]+\bsrc="([^"]+)"` )
97- imgs1 := imgRE1 .FindAllStringSubmatch (subma1 [0 ][5 ], - 1 )
98- out := make ([]string , len (imgs1 ))
99- for i := range out {
100- if strings .Contains (imgs1 [i ][1 ], "Statistics" ) {
101- ContentTypeData .Statistics = true
102- } else if strings .Contains (imgs1 [i ][1 ], "ArticlesNews" ) {
103- ContentTypeData .Texts = true
104- } else if strings .Contains (imgs1 [i ][1 ], "Tools" ) {
105- ContentTypeData .Tools = true
106- } else if strings .Contains (imgs1 [i ][1 ], "Wiki" ) {
107- ContentTypeData .Wiki = true
108- }
71+ var PromotedFansitesData , SupportedFansitesData []Fansite
72+
73+ // list of different fansite types
74+ FansiteTypes := []string {"promoted" , "supported" }
75+ // running over the FansiteTypes array
76+ for _ , FansiteType := range FansiteTypes {
77+
78+ // Running query over each tr in <FansiteType>fansitesinnertable
79+ ReaderHTML .Find ("#" + FansiteType + "fansitesinnertable tr" ).First ().NextAll ().Each (func (index int , s * goquery.Selection ) {
80+ // #promotedfansitesinnertable
81+ // #supportedfansitesinnertable
82+
83+ // Storing HTML into FansiteTrHTML
84+ FansiteTrHTML , err := s .Html ()
85+ if err != nil {
86+ log .Fatal (err )
10987 }
11088
111- // SocialMedia
112- SocialMediaData := SocialMedia {}
113- var imgRE2 = regexp .MustCompile (`<img[^>]+\bsrc="([^"]+)"` )
114- imgs2 := imgRE2 .FindAllStringSubmatch (subma1 [0 ][6 ], - 1 )
115- out2 := make ([]string , len (imgs2 ))
116- for i := range out2 {
117- if strings .Contains (imgs2 [i ][1 ], "Discord" ) {
118- SocialMediaData .Discord = true
119- } else if strings .Contains (imgs2 [i ][1 ], "Facebook" ) {
120- SocialMediaData .Facebook = true
121- } else if strings .Contains (imgs2 [i ][1 ], "Instagram" ) {
122- SocialMediaData .Instagram = true
123- } else if strings .Contains (imgs2 [i ][1 ], "Reddit" ) {
124- SocialMediaData .Reddit = true
125- } else if strings .Contains (imgs2 [i ][1 ], "Twitch" ) {
126- SocialMediaData .Twitch = true
127- } else if strings .Contains (imgs2 [i ][1 ], "Twitter" ) {
128- SocialMediaData .Twitter = true
129- } else if strings .Contains (imgs2 [i ][1 ], "Youtube" ) {
130- SocialMediaData .Youtube = true
89+ // Removing line breaks
90+ FansiteTrHTML = TibiadataHTMLRemoveLinebreaksV3 (FansiteTrHTML )
91+
92+ // Regex to get data for fansites
93+ regex1 := regexp .MustCompile (`<td><a href="(.*)" target.*img .*src="(.*)" alt="(.*)"\/><\/a>.*<a href=".*">(.*)<\/a><\/td><td.*top;">(.*)<\/td><td.*top;">(.*)<\/td><td.*top;">(.*)<\/td><td.*<ul><li>(.*)<\/li><\/ul><\/td><td.*top;">(.*)<\/td>` )
94+ subma1 := regex1 .FindAllStringSubmatch (FansiteTrHTML , - 1 )
95+
96+ if len (subma1 ) > 0 {
97+
98+ // ContentType
99+ ContentTypeData := ContentType {}
100+ var imgRE1 = regexp .MustCompile (`<img[^>]+\bsrc="([^"]+)"` )
101+ imgs1 := imgRE1 .FindAllStringSubmatch (subma1 [0 ][5 ], - 1 )
102+ out := make ([]string , len (imgs1 ))
103+ for i := range out {
104+ if strings .Contains (imgs1 [i ][1 ], "Statistics" ) {
105+ ContentTypeData .Statistics = true
106+ } else if strings .Contains (imgs1 [i ][1 ], "ArticlesNews" ) {
107+ ContentTypeData .Texts = true
108+ } else if strings .Contains (imgs1 [i ][1 ], "Tools" ) {
109+ ContentTypeData .Tools = true
110+ } else if strings .Contains (imgs1 [i ][1 ], "Wiki" ) {
111+ ContentTypeData .Wiki = true
112+ }
131113 }
132- }
133-
134- // Languages
135- re := regexp .MustCompile ("iti__flag.iti__(..)" )
136- found := re .FindAllString (subma1 [0 ][7 ], - 1 )
137- FansiteLanguagesData := make ([]string , len (found ))
138- for i := range FansiteLanguagesData {
139- FansiteLanguagesData [i ] = strings .ReplaceAll (found [i ], "iti__flag iti__" , "" )
140- }
141-
142- // Specials
143- subma1 [0 ][8 ] = html .UnescapeString (subma1 [0 ][8 ])
144- FansiteSpecialsData := strings .Split (subma1 [0 ][8 ], "</li><li>" )
145-
146- // FansiteItem & FansiteItemURL
147- var FansiteItemData bool
148- var FansiteItemURLData string
149- regex2 := regexp .MustCompile (`.*src="(.*)" alt=".*` )
150- subma1item := regex2 .FindAllStringSubmatch (subma1 [0 ][9 ], - 1 )
151- if len (subma1item ) > 0 {
152- FansiteItemData = true
153- FansiteItemURLData = subma1item [0 ][1 ]
154- } else {
155- FansiteItemData = false
156- FansiteItemURLData = ""
157- }
158-
159- PromotedFansitesData = append (PromotedFansitesData , Fansite {
160- Name : subma1 [0 ][3 ],
161- LogoURL : subma1 [0 ][2 ],
162- Homepage : subma1 [0 ][1 ],
163- Contact : subma1 [0 ][4 ],
164- ContentType : ContentTypeData ,
165- SocialMedia : SocialMediaData ,
166- Languages : FansiteLanguagesData ,
167- Specials : FansiteSpecialsData ,
168- FansiteItem : FansiteItemData ,
169- FansiteItemURL : FansiteItemURLData ,
170- })
171- }
172114
173- })
174-
175- // Running query over each tr in fansitesinnertable
176- ReaderHTML .Find ("#supportedfansitesinnertable tr" ).First ().NextAll ().Each (func (index int , s * goquery.Selection ) {
177- // #promotedfansitesinnertable
178- // #supportedfansitesinnertable
179-
180- // Storing HTML into FansiteTrHTML
181- FansiteTrHTML , err := s .Html ()
182- if err != nil {
183- log .Fatal (err )
184- }
185-
186- // Removing line breaks
187- FansiteTrHTML = TibiadataHTMLRemoveLinebreaksV3 (FansiteTrHTML )
188-
189- // Regex to get data for fansites
190- regex1 := regexp .MustCompile (`<td><a href="(.*)" target.*img .*src="(.*)" alt="(.*)"\/><\/a>.*<a href=".*">(.*)<\/a><\/td><td.*top;">(.*)<\/td><td.*top;">(.*)<\/td><td.*top;">(.*)<\/td><td.*<ul><li>(.*)<\/li><\/ul><\/td><td.*top;">(.*)<\/td>` )
191- subma1 := regex1 .FindAllStringSubmatch (FansiteTrHTML , - 1 )
192-
193- if len (subma1 ) > 0 {
194-
195- // ContentType
196- ContentTypeData := ContentType {}
197- var imgRE1 = regexp .MustCompile (`<img[^>]+\bsrc="([^"]+)"` )
198- imgs1 := imgRE1 .FindAllStringSubmatch (subma1 [0 ][5 ], - 1 )
199- out := make ([]string , len (imgs1 ))
200- for i := range out {
201- if strings .Contains (imgs1 [i ][1 ], "Statistics" ) {
202- ContentTypeData .Statistics = true
203- } else if strings .Contains (imgs1 [i ][1 ], "ArticlesNews" ) {
204- ContentTypeData .Texts = true
205- } else if strings .Contains (imgs1 [i ][1 ], "Tools" ) {
206- ContentTypeData .Tools = true
207- } else if strings .Contains (imgs1 [i ][1 ], "Wiki" ) {
208- ContentTypeData .Wiki = true
115+ // SocialMedia
116+ SocialMediaData := SocialMedia {}
117+ var imgRE2 = regexp .MustCompile (`<img[^>]+\bsrc="([^"]+)"` )
118+ imgs2 := imgRE2 .FindAllStringSubmatch (subma1 [0 ][6 ], - 1 )
119+ out2 := make ([]string , len (imgs2 ))
120+ for i := range out2 {
121+ if strings .Contains (imgs2 [i ][1 ], "Discord" ) {
122+ SocialMediaData .Discord = true
123+ } else if strings .Contains (imgs2 [i ][1 ], "Facebook" ) {
124+ SocialMediaData .Facebook = true
125+ } else if strings .Contains (imgs2 [i ][1 ], "Instagram" ) {
126+ SocialMediaData .Instagram = true
127+ } else if strings .Contains (imgs2 [i ][1 ], "Reddit" ) {
128+ SocialMediaData .Reddit = true
129+ } else if strings .Contains (imgs2 [i ][1 ], "Twitch" ) {
130+ SocialMediaData .Twitch = true
131+ } else if strings .Contains (imgs2 [i ][1 ], "Twitter" ) {
132+ SocialMediaData .Twitter = true
133+ } else if strings .Contains (imgs2 [i ][1 ], "Youtube" ) {
134+ SocialMediaData .Youtube = true
135+ }
209136 }
210- }
211137
212- // SocialMedia
213- SocialMediaData := SocialMedia {}
214- var imgRE2 = regexp .MustCompile (`<img[^>]+\bsrc="([^"]+)"` )
215- imgs2 := imgRE2 .FindAllStringSubmatch (subma1 [0 ][6 ], - 1 )
216- out2 := make ([]string , len (imgs2 ))
217- for i := range out2 {
218- if strings .Contains (imgs2 [i ][1 ], "Discord" ) {
219- SocialMediaData .Discord = true
220- } else if strings .Contains (imgs2 [i ][1 ], "Facebook" ) {
221- SocialMediaData .Facebook = true
222- } else if strings .Contains (imgs2 [i ][1 ], "Instagram" ) {
223- SocialMediaData .Instagram = true
224- } else if strings .Contains (imgs2 [i ][1 ], "Reddit" ) {
225- SocialMediaData .Reddit = true
226- } else if strings .Contains (imgs2 [i ][1 ], "Twitch" ) {
227- SocialMediaData .Twitch = true
228- } else if strings .Contains (imgs2 [i ][1 ], "Twitter" ) {
229- SocialMediaData .Twitter = true
230- } else if strings .Contains (imgs2 [i ][1 ], "Youtube" ) {
231- SocialMediaData .Youtube = true
138+ // Languages
139+ re := regexp .MustCompile ("iti__flag.iti__(..)" )
140+ found := re .FindAllString (subma1 [0 ][7 ], - 1 )
141+ FansiteLanguagesData := make ([]string , len (found ))
142+ for i := range FansiteLanguagesData {
143+ FansiteLanguagesData [i ] = strings .ReplaceAll (found [i ], "iti__flag iti__" , "" )
232144 }
233- }
234-
235- // Languages
236- re := regexp .MustCompile ("iti__flag.iti__(..)" )
237- found := re .FindAllString (subma1 [0 ][7 ], - 1 )
238- FansiteLanguagesData := make ([]string , len (found ))
239- for i := range FansiteLanguagesData {
240- FansiteLanguagesData [i ] = strings .ReplaceAll (found [i ], "iti__flag iti__" , "" )
241- }
242145
243- // Specials
244- subma1 [0 ][8 ] = html .UnescapeString (subma1 [0 ][8 ])
245- FansiteSpecialsData := strings .Split (subma1 [0 ][8 ], "</li><li>" )
146+ // Specials
147+ subma1 [0 ][8 ] = html .UnescapeString (subma1 [0 ][8 ])
148+ FansiteSpecialsData := strings .Split (subma1 [0 ][8 ], "</li><li>" )
149+
150+ // FansiteItem & FansiteItemURL
151+ var FansiteItemData bool
152+ var FansiteItemURLData string
153+ regex2 := regexp .MustCompile (`.*src="(.*)" alt=".*` )
154+ subma1item := regex2 .FindAllStringSubmatch (subma1 [0 ][9 ], - 1 )
155+ if len (subma1item ) > 0 {
156+ FansiteItemData = true
157+ FansiteItemURLData = subma1item [0 ][1 ]
158+ } else {
159+ FansiteItemData = false
160+ FansiteItemURLData = ""
161+ }
246162
247- // FansiteItem & FansiteItemURL
248- var FansiteItemData bool
249- var FansiteItemURLData string
250- regex2 := regexp .MustCompile (`.*src="(.*)" alt=".*` )
251- subma1item := regex2 .FindAllStringSubmatch (subma1 [0 ][9 ], - 1 )
252- if len (subma1item ) > 0 {
253- FansiteItemData = true
254- FansiteItemURLData = subma1item [0 ][1 ]
255- } else {
256- FansiteItemData = false
257- FansiteItemURLData = ""
163+ if FansiteType == "promoted" {
164+ PromotedFansitesData = append (PromotedFansitesData , Fansite {
165+ Name : subma1 [0 ][3 ],
166+ LogoURL : subma1 [0 ][2 ],
167+ Homepage : subma1 [0 ][1 ],
168+ Contact : subma1 [0 ][4 ],
169+ ContentType : ContentTypeData ,
170+ SocialMedia : SocialMediaData ,
171+ Languages : FansiteLanguagesData ,
172+ Specials : FansiteSpecialsData ,
173+ FansiteItem : FansiteItemData ,
174+ FansiteItemURL : FansiteItemURLData ,
175+ })
176+ } else if FansiteType == "supported" {
177+ SupportedFansitesData = append (SupportedFansitesData , Fansite {
178+ Name : subma1 [0 ][3 ],
179+ LogoURL : subma1 [0 ][2 ],
180+ Homepage : subma1 [0 ][1 ],
181+ Contact : subma1 [0 ][4 ],
182+ ContentType : ContentTypeData ,
183+ SocialMedia : SocialMediaData ,
184+ Languages : FansiteLanguagesData ,
185+ Specials : FansiteSpecialsData ,
186+ FansiteItem : FansiteItemData ,
187+ FansiteItemURL : FansiteItemURLData ,
188+ })
189+ }
258190 }
259191
260- SupportedFansitesData = append (SupportedFansitesData , Fansite {
261- Name : subma1 [0 ][3 ],
262- LogoURL : subma1 [0 ][2 ],
263- Homepage : subma1 [0 ][1 ],
264- Contact : subma1 [0 ][4 ],
265- ContentType : ContentTypeData ,
266- SocialMedia : SocialMediaData ,
267- Languages : FansiteLanguagesData ,
268- Specials : FansiteSpecialsData ,
269- FansiteItem : FansiteItemData ,
270- FansiteItemURL : FansiteItemURLData ,
271- })
272- }
273-
274- })
192+ })
275193
276- // Printing the PromotedFansitesData data to log
277- // log.Println(PromotedFansitesData)
278- // Printing the SupportedFansitesData data to log
279- // log.Println(SupportedFansitesData)
194+ }
280195
281196 //
282197 // Build the data-blob
0 commit comments