Popular Post Yosodog Posted December 1, 2016 Popular Post Share Posted December 1, 2016 (edited) So I know there's a thread in the closed dev group, but not all of us are privileged like that. So I'm going to create a thread here to discuss why the proposed implementation of the API is a horrible, horrible, horrible idea. First, the main issue here is the rate limiting. For $5, you can make 50 requests a day which is almost completely useless. If you wanted to make a script that kept statistics of alliances that aren't available in the alliances API, you need to make one request to the alliances API to get the alliance IDs, and 293 requests to get the rest. Now you could barebones it and only take stats of the top 50, but that's bad. 294 requests a day is next to nothing. I develop extensive scripts and projects that use the API heavily because it's a lot better than scraping the website. I would go through 50 requests a minute after midnight. Sure, you can "upgrade" your API key. Level 2 is 110 requests, level 3 is 190, but you don't get into the real numbers until you get to about level 15 with 6,350 requests. Which, during a war, is still nothing. $71.75 real life dollars for a level 15 API key. Simply put, it's a rip-off. And I understand that these numbers can be changed, but they'd have to be changed pretty dramatically to even make this half way decent. Next thing, if people are going to be required to pay for the API, the API better be a very good API. I'm talking proper RESTful practices, endpoints for almost everything, and versioning the API. At its current state, the API does not follow RESTful practices such as proper HTTP status codes (I shouldn't get a 200 response if the nation doesn't exist), sorting or filtering, pagination, and versioning to name a few. That isn't even talking about the severe lack of endpoints such as the ability to send money through the bank, get tax info, send and get messages, editing a city, editing nation, buying military, managing alliance, WAR INFO, etc. Simply put, if people are being forced to pay for the API, they should be getting a quality product. In its current state, no one really complains because it's free. Yeah, we'd like a lot of improvements but we'll take what we can get. I read that you're going to be adding things to the API which is cool, but it's going to have to be A LOT and be very good in order to justify the price. And finally, more of an implementation compliant, having the API token appended using a GET parameter isn't the best method. The best way to do it would be an oAuth2 server which would be absolutely fantastic. Another simple but less awesome way is using HTTP basic auth. Appending the API token to the URL, and even HTTP basic auth, is very outdated but I don't really mind; it's not my main complaint. I do think that if the API is causing a resource drain on the server, rate limits should be implemented. I just think that the way that this is currently being implemented is almost the worst possible way. If making people pay to use the API will motivate you to make more endpoints and make the API a lot better, then full steam ahead. However, the current proposed plan is theft. We can have rate-limited API hidden behind a token-based authentication system that you have to use credits for, but it needs to be realistically implemented. So here's my suggestions: Rather than a daily limit, have it be limited by the minute. 30-40 requests a minute or hell even 10 requests a minute works. Daily limits are just baaaaaad. Restrict access to only VIPs. This would add another major incentive to buy VIP monthly and could actually result in more money. Tier the API rate limits. A free tier could be 10 requests a minute, a level 1 tier could be 40 requests a minute, and so on. Keep it free, but have rate limiting by the minute. Keep it the way it is now. We might not get more endpoints but it currently works for us. If it ain't broke, don't fix it. There are many ways to properly implement these restrictions without making the API completely useless. I hope you take some of my suggestions. I am a very heavy user of the API; I build lots and lots of tools and even full blown programs that interact with PW and honestly it's one of the main reasons I have an interest in this game. The current proposed plan would kill the API completely and no one would use it. I agree that there should be rate limiting and if you want to put it behind a paywall, I'm all for it. I just do not want it to be a complete rip-off. Edited December 1, 2016 by Yosodog 16 Quote [22:37:51] <&Yosodog> Problem is, everyone is too busy deciding which top gun character they are that no decision has been made BK in a nutshell Link to comment Share on other sites More sharing options...
Jodo Posted December 1, 2016 Share Posted December 1, 2016 (edited) For those confused: I've set up API restrictions on the test server; namely that you need an API key to make API requests. An API key costs 1 Credit, and you can upgrade it/purchase additional keys for more Credits. You can read up a bit on it and test it here: http://test.politicsandwar.com/account/ Looking for general feedback. This won't be pushed out immediately or anything, but unless there's major concern I'm more or less happy with the API key system as-is, and will be working on adding more to the API in the future to make it more beneficial to purchase keys. Also, increased the max war limit for the wars API to 5000 as well. Edited December 1, 2016 by Doom Marine 1 Quote Link to comment Share on other sites More sharing options...
Kastor Posted December 1, 2016 Share Posted December 1, 2016 You shouldn't have to pay to use the API. 1 Quote Link to comment Share on other sites More sharing options...
Administrators Alex Posted December 1, 2016 Administrators Share Posted December 1, 2016 Thanks for your feedback. I had asked in Discord a couple of times to talk directly to people who use the API frequently, and didn't get any responses, so I threw together a quick system. I like the idea of restricting API keys to VIP members. You're probably right, making it a subscription vs. a one-time fee would probably generate more money. One of my main concerns and reasons for wanting to limit the API to daily requests is that people are using the API to check trade prices super frequently and jump on accidental trades, in many cases before the player who posted the trade has the chance to realize their mistake and cancel it. I've gotten many complaints about this, and how people are "botting" and it's unfair because they don't know how to set up scripts to get that advantage. My current feelings on the matter are: I'm sold on giving everyone with a VIP subscription an API key. I'm fine with increasing the number of requests allowed. I'm not sold on making it requests per minute. For your alliance example, I can just change it up so that all alliances are displayed in one page and you don't need to do individual requests for those out of the top 50, and similarly for other API pages in the same boat. 1 Quote Is there a bug? Report It | Not understanding game mechanics? Ask About It | Got a good idea? Suggest ItForums Rules | Game Link Link to comment Share on other sites More sharing options...
Administrators Alex Posted December 1, 2016 Administrators Share Posted December 1, 2016 You shouldn't have to pay to use the API. It's an easy way to fund the game without making it pay-to-win or burdening most users. Plus, I figure the small number of people who actually use the API get a ton of utility out of it, and would be willing to pay to use it. Seems like a logical thing to pay to use imo. Quote Is there a bug? Report It | Not understanding game mechanics? Ask About It | Got a good idea? Suggest ItForums Rules | Game Link Link to comment Share on other sites More sharing options...
Woot Posted December 1, 2016 Share Posted December 1, 2016 I bought $80m in credits today and I'll spend them all slowly levelling up my API key to an absurd level if that's what I have to do. Here's an example of some really simple data gathering for fun that took 1500 API requests during one day. That's nothing compared to the amount of requests I use when it actually matters, like loading everyone's military counts during a war. https://politicsandwar.com/forums/index.php?/topic/17384-some-stats-on-domestic-policies-and-by-proxy-player-ideology/ Quote Link to comment Share on other sites More sharing options...
fliesnow Posted December 1, 2016 Share Posted December 1, 2016 One of my main concerns and reasons for wanting to limit the API to daily requests is that people are using the API to check trade prices super frequently and jump on accidental trades, in many cases before the player who posted the trade has the chance to realize their mistake and cancel it. I've gotten many complaints about this, and how people are "botting" and it's unfair because they don't know how to set up scripts to get that advantage. I must confess that much of this is my fault, at least if the jump was recent. A previous version (in the form of a plugin) was distributed on the forum with a far superior version having recently been distributed it within BK via greasyfork. It has always been my intention to distribute it to anyone who is interested, but finals season has slowed that down somewhat...... If you decide to restrict it to VIP, that seems reasonable on the surface. It will, however, give VIP subscribers a significant advantage in the Resource Brokering field. That is my only concern with the idea. Also, if I understand the game rules correctly, it is only actually "Botting" if the script itself is making the trade. In this case, all the information is publicly available and these players are just able to access it more quickly. Sometime within the next few days I will post the aide visibly on these forums. For now, here is where it can be found if anyone reading this is interested: https://greasyfork.org/en/scripts/24872-fliesnow-s-politics-and-war-aide Quote Check out my P&W Aide here: https://greasyfork.org/en/scripts/24872-fliesnow-s-politics-and-war-aide Crux sacra sit mihi lux; Non draco sit mihi dux Link to comment Share on other sites More sharing options...
Shadow Posted December 1, 2016 Share Posted December 1, 2016 (edited) I hadn't heard of any of this before this topic and my only leg in this discussion, is that depending on how it all gets implemented, a side effect may be it killing off my Alliance Leaderboards (https://politicsandwar.com/forums/index.php?/topic/16632-the-alliance-leaderboards/). If I end up having to get credits or pay for trying to gather the stats for that topic then i'll probably lose interest towards doing it further. Currently my program for creating the daily stats calls the main Alliances API once, the main Nations API once, and the individual alliance api for each alliance in the game once to get the info not on the main alliances api (military stats, treasure stats, gdp, applicant and vmode numbers). Seems silly that due to people gaining an advantage from the trading api, all others will suffer too even for completely unrelated use cases and for ones that don't really give any supposed "unfair advantage". Edited December 1, 2016 by Shadow 1 Quote Link to comment Share on other sites More sharing options...
Mageofpie Posted December 1, 2016 Share Posted December 1, 2016 The only personal grievance I have with this is people using this to constantly refresh troop counts/etc so that they can instantly disarm a nuke seconds after it's made. Some have bots that take this information and automatically post it to chat groups they're a part of. I am VERY unfamiliar with this kind of thing so I don't even know if we're discussing the same things, but I can find no other way to classify that kind of thing other than an unfair advantage. I'm also biased in regards to that since I'm a lone wolf. 1 Quote Link to comment Share on other sites More sharing options...
Kid Winchell Posted December 1, 2016 Share Posted December 1, 2016 If the fact that people are abusing the tradeprice API is an issue, then a simple solution would be to make that one not serve live information. Only update it once every so often. That being said, I would gladly pay to use the API. But only if it's an actual, quality product, not the hodgepodge of a mess it is now. Rate limiting by the minute is a much better idea than by the day. I take daily snapshots of every city and nation in-game, and I'm not the only one. That means that for my perfectly legitimate, once-per-day activities, I need to make upwards of 30k requests. A daily limit that would allow me to do that would allow someone who only uses the tradeprice API to nearly constantly make requests during the time that they're active. A minute-based rate limit would be much more effective at making sure that the server isn't flooded with requests in either case. Maybe use both? Or restructure the API so that it doesn't take 30k requests to get all of the information I need. 1 Quote Link to comment Share on other sites More sharing options...
Lilac Veritas Posted December 1, 2016 Share Posted December 1, 2016 Limiting by the minute certainly seems better, as is restricting to VIPs for the super serious stuff as it would be relatively cheap for a decent taxbase alliance to fund that for the data members. A side thought for limits, could perhaps implement a sort of on-peak off-peak sort of thing ie have less requests available on the turn/day change. I'm not a big user of it but we've got a few programs, and incentivising people to request on the off peak could help Quote As you sow, so shall you reap Link to comment Share on other sites More sharing options...
seabasstion Posted December 1, 2016 Share Posted December 1, 2016 I would gladly pay several credits per month for access. The data is somewhat limited on the broader pages like all nations which requires me to currently go individually through each nations api. Restricting my number of hits below what I would need to do anything useful would dissuade me from purchasing access if that is the pay structure you put in place without making your broader api pages more useful. If it's a binary on/off access in the current api structure I'm paying each and every month Quote Link to comment Share on other sites More sharing options...
Printer635 Posted December 1, 2016 Share Posted December 1, 2016 From the perspective of someone teaching himself how to code, I can just about make a few simple tools that utilise the API and even they require a couple of hundred requests to complete. The PnW API has been a great tool to practice coding as it's easily accessible and allows me to make scripts that are actually useful in some way. I'll happily pay a couple of credits to use it, but if it becomes tricky to access or If access is put behind such a heavy paywall then I'd be put off having to pay a lot for something I might not get working. 1 Quote Link to comment Share on other sites More sharing options...
Kastor Posted December 1, 2016 Share Posted December 1, 2016 Sheepy, in case you were wondering, it's updates like this which is why credits purchases are down. They'll buy for awhile and go right back down. Don't listen to them above about paying, it's a bad idea. 1 Quote Link to comment Share on other sites More sharing options...
Administrators Alex Posted December 1, 2016 Administrators Share Posted December 1, 2016 Sheepy, in case you were wondering, it's updates like this which is why credits purchases are down. They'll buy for awhile and go right back down. Don't listen to them above about paying, it's a bad idea. That doesn't make sense. Right now there's no Credits being sold to use the API. By charging for the API, it could either remain the same, or go up. It literally could not go down. Quote Is there a bug? Report It | Not understanding game mechanics? Ask About It | Got a good idea? Suggest ItForums Rules | Game Link Link to comment Share on other sites More sharing options...
Jodo Posted December 1, 2016 Share Posted December 1, 2016 That doesn't make sense. Right now there's no Credits being sold to use the API. By charging for the API, it could either remain the same, or go up. It literally could not go down.True. On the flip side, people can just... not use the api. 1 Quote Link to comment Share on other sites More sharing options...
Administrators Alex Posted December 1, 2016 Administrators Share Posted December 1, 2016 True. On the flip side, people can just... not use the api. Which, if anything, reduces the load on the server. Quote Is there a bug? Report It | Not understanding game mechanics? Ask About It | Got a good idea? Suggest ItForums Rules | Game Link Link to comment Share on other sites More sharing options...
Woot Posted December 1, 2016 Share Posted December 1, 2016 Which, if anything, reduces the load on the server. When I learned about the API I thought that maybe you made it to reduce load on the server. Before someone told me about it I was automatically loading entire normal pages from the main website and extracting what I wanted with xpath. And before I learned how to do that I was just opening up hundreds of pages a day and sorting through them manually for the vital tasks like finding raid targets or keeping track of military numbers. Quote Link to comment Share on other sites More sharing options...
Jodo Posted December 1, 2016 Share Posted December 1, 2016 Which, if anything, reduces the load on the server.Uhhhhhh... no? Quote Link to comment Share on other sites More sharing options...
Jodo Posted December 1, 2016 Share Posted December 1, 2016 To clarify: People will just use the old methods of getting the information. Which would in fact bog things down. No one will pay for a service when the information they are paying for is displayed freely already. 2 Quote Link to comment Share on other sites More sharing options...
Popular Post Yosodog Posted December 1, 2016 Author Popular Post Share Posted December 1, 2016 (edited) Obligatory "where's muh perks" Anyways, let's get started. Thanks for your feedback. I had asked in Discord a couple of times to talk directly to people who use the API frequently, and didn't get any responses, so I threw together a quick system. I like the idea of restricting API keys to VIP members. You're probably right, making it a subscription vs. a one-time fee would probably generate more money. One of my main concerns and reasons for wanting to limit the API to daily requests is that people are using the API to check trade prices super frequently and jump on accidental trades, in many cases before the player who posted the trade has the chance to realize their mistake and cancel it. I've gotten many complaints about this, and how people are "botting" and it's unfair because they don't know how to set up scripts to get that advantage. My current feelings on the matter are: I'm sold on giving everyone with a VIP subscription an API key. I'm fine with increasing the number of requests allowed. I'm not sold on making it requests per minute. For your alliance example, I can just change it up so that all alliances are displayed in one page and you don't need to do individual requests for those out of the top 50, and similarly for other API pages in the same boat. If VIP's were to get API keys, it would be a nice bonus but "leveling up" your API key is a way to milk the players of money. It also adds another aspect of "pay-to-win" because the person who puts the most money into the API key would have an advantage and people who do not know how to setup scripts to get an advantage surely would not invest much money into doing it. The people who will invest money into it already do it and already know how to take advantage of the API. By restricting the API behind a paywall, it's further preventing people to learn how to take advantage of the API and taking away the even playing field for everyone. If the API was only available to VIP members and was just rate limited by the minute, and it was an even playing field for everyone, this takes away the pay-to-win aspect of "leveling up" your API key and allows anyone to use the API to their advantage. As for people botting to take advantage of accidental trades, it's a really douchie thing for someone to do in my opinion and according to the rules, as long as they don't use a script to buy the resources, they're fine. But this can be prevented in other ways than just limiting the entirety of the API. As Ghux mentioned above, just have the tradeprice API updated every five minutes or one minute rather than instantly. (As a side note, I created a user script that puts the correct PPU in the input for you so you don't make huge mistakes when selling resources https://greasyfork.org/en/scripts/22277-politics-and-war-ppu-updater) In short, creating an expensive leveling up API key creates a pay-to-win atmosphere and the people who want to learn how to take advantage of the API would be discouraged to do so leaving a monopoly on API users giving advantages to specific alliances. If you are dead set on making the requests a per day thing, a level 1 API key would really need to be high. Something like 1k requests. 24 hours is a very long time and even those 1k requests would get eaten up by a small user quite quickly. Per minute or hourly rate limits would be exponentially better than daily limits. Changing the API to show more information is good, but also not exactly what is needed. We'd need control to filter and sort on our own. For example, if I want to get information on every BK nation, right now I have to query the nations API and get all BK's nation IDs, then query the nation API with that nation ID and check if they're an applicant and then do what I need to do with that information. Now, you could just have the nations API give all the information we could ever want but that is highly inefficient. Using Chrome's network stuff, the nations API page is 178 KB and took 516 ms (excluding DOM load time because that doesn't matter) to respond. That's quite a large file and took quite a long time to respond and if you threw all nation info on one API, that would increase the size of the API request significantly and would increase load time and of course server resources. I would want to be able to tell the API "hey, I want all nations with the alliance ID of 877" and it just shows nations with the alliance ID of 877. Now, I'm a big fan of pagination, but if you're going rate limiting us so hard, I'd rather not lmao. And the same goes for the alliances API. If I want to only load the top 25, there's no reason for me to load all 300 alliances. I hadn't heard of any of this before this topic and my only leg in this discussion, is that depending on how it all gets implemented, a side effect may be it killing off my Alliance Leaderboards (https://politicsandwar.com/forums/index.php?/topic/16632-the-alliance-leaderboards/). If I end up having to get credits or pay for trying to gather the stats for that topic then i'll probably lose interest towards doing it further.Currently my program for creating the daily stats calls the main Alliances API once, the main Nations API once, and the individual alliance api for each alliance in the game once to get the info not on the main alliances api (military stats, treasure stats, gdp, applicant and vmode numbers).Seems silly that due to people gaining an advantage from the trading api, all others will suffer too even for completely unrelated use cases and for ones that don't really give any supposed "unfair advantage". I think this is a prime case of someone using the API to make the game more interesting for people and having harsh rate limits behind a pay wall negatively impacts the game. Even though I keep my own statistics, not all people do and the alliance leaderboards has always been an amazing topic to view in-depth statistics on every alliance. The same goes for Woot's post which was super interesting as well. If the API is harshly rate limited, developers will be using their requests to benefit their alliance and will not put any effort into creating cool stats or extensions for the game. From the perspective of someone teaching himself how to code, I can just about make a few simple tools that utilise the API and even they require a couple of hundred requests to complete. The PnW API has been a great tool to practice coding as it's easily accessible and allows me to make scripts that are actually useful in some way. I'll happily pay a couple of credits to use it, but if it becomes tricky to access or If access is put behind such a heavy paywall then I'd be put off having to pay a lot for something I might not get working. Keep learning to code bro. In my personal experience, the PW API has caused me to learn so many more things that I probably never would've learned if it hadn't been for the PW API. I'd like to consider myself now a fairly good programmer because of the PW API. As I've said above, putting the API behind a ridiculous pay wall people who don't know how to make scripts for PW less encouraged to do so and only helps the people who currently know how to take full advantage of the API. On a personal note, Printer, don't get discouraged from learning how to code. It is such a useful skill and I'm so happy that I've spent a significant portion of 2016 learning tons of shit about programming. And now I'm helping a couple people in BK get better at coding. If you, or anyone else who's reading this, have any questions about using PW's API or even programming questions in general, hit me up on Discord. Which, if anything, reduces the load on the server. As mentioned above, not making the API accessible or making it too expensive to use will cause people to use the pre-API methods of gathering information which is scraping the site. Please, do not make me do that because I absolutely detest doing it. However, over the API, scraping will 100% be more resource intensive on the server. A call to my nation's API was 115 B and took 115 ms to load. Compared to loading my nation page from the regular website, the page itself was 13.2 KB 160 ms to load (so images, external javascript files, stylesheets were excluded). Then, loading my nation page also has a lot of backend stuff going on, such as loading my resources, checking if I have messages or notifications, making sure I'm authenticated, etc. If the API is too expensive and not accessible, people will scrape the site which will increase bandwidth and increase server resource usage. The API really is a win/win for both the user and you. I really hope you re-consider. I would absolutely love a proper REST API with oAuth2 and all this cool shit, but all that would be thrown to the wind if it's too expensive and inaccessible to people. If you are dead set on daily limits rather than minute limits, then they're going to have to be increased exponentially to give it value and "leveling up" API keys just makes the API inaccessible and pay-to-win. Edited December 1, 2016 by Yosodog 8 Quote [22:37:51] <&Yosodog> Problem is, everyone is too busy deciding which top gun character they are that no decision has been made BK in a nutshell Link to comment Share on other sites More sharing options...
Ren Posted December 3, 2016 Share Posted December 3, 2016 -snip- Your PPU updater is very nice. So simple, yet it never occurred to me to automate the one part of the trading process I'm most likely to screw up. Thank you! 2 Quote Link to comment Share on other sites More sharing options...
niquedegraaff Posted December 7, 2016 Share Posted December 7, 2016 (edited) I'm gonna put a different tone to this discussion because I get a little angry about this.Pay for an API key? I don't think that's fair. You state that we get a lot of utility out of the API but that's not true. We do not get more utility then other, free users have. If we want to util that source, we have to make those utilities our selves. That's not for free: we have to invest time and effort to make them. What you try to do here is make money out of our own utilities that can exist without your API. Your benefit of an API is that we use a less resource intensive way. Our benefit is that it is a little easier to code something around that. So it is WIN/WIN. But the greed...To be honest: I think this is a way to milk users and I really don't like this attitude. I think a lot of players already can't resist the temptation to not pay for in-game money for example.I pay like $20 each month. And I'm just one user. How many of us pay for their credits?Isn't that money enough for you? If you gonna charge money for an API people then will use the scrape method to get info. I'm very sensitive about this greedy milking method as it sounds like a really cheap and greedy way to make more and more money. On top of that it is frustrating developers / coders. It's a step backward in time. You already got some basic API going. Putting up an API on it's own isn't really that hard.. Could be done within one day. No UI design is needed... you just spit out json,Your server loads will drop so that means less costs...LESS. Not more. So what does justify a $5 each month for each API user then? You already make money out if it without people having to pay.This is not the way to go I.M.O. and the proposed idea alone about this makes me feel worried about the whole game. Is the next road section still your passion to create and maintain this game or is it to make quick money? Edited December 7, 2016 by niquedegraaff Quote Link to comment Share on other sites More sharing options...
Shakyr Posted December 7, 2016 Share Posted December 7, 2016 Only just noticed this topic. If your servers are getting hit, it's likely because you haven't put much effort into structuring the API properly. Restructure the API, so we don't have to request as much data, and it will likely reduce your server load. I personally have posted topics before asking for something approaching a proper structure to the API and they've basically been ignored. https://politicsandwar.com/forums/index.php?/topic/11365-nation-api-layout-suggestion/ https://politicsandwar.com/forums/index.php?/topic/10558-alliance-api-layout-suggestion/ If you want an idea of how to implement an API properly, go buy yourself a copy of Guild Wars 2 and look at their (freely available) API. Other suggestions include make available historical data, from your Stat Tracker. Also include timestamps for when the data was pulled (not just date). If this was available, alot of people probably wouldn't need to fetch and store historical data anymore. Also make available Radiation as an API also (current and historical), that way I don't have to scrape the page to get the data. Maybe, just maybe, if all this happens, then add in paid access for high rate limits. I'm talking people who want to pull 120 requests/minute or higher. But I would still keep free access available and limited by the minute, not daily. If you implement your current proposal, you will also have to rate limit the game itself, to stop people from simply scraping the site. Personally, I'd just give up completely and quietly semi-retire from the game (much like I have with (That terrible game that is totally irrelevant and I shouldn't be bringing it up anyways)). Vast majority of the fun for me, is actually experimenting and playing around with the API data, for example working out efficient ways to build nations and cities, via simulations (my current project). Quote Link to comment Share on other sites More sharing options...
dmjohnston Posted December 22, 2016 Share Posted December 22, 2016 I'll quit this game if api costs money. !@#$ that. Quote ☾☆ Priest of Dio º¤ø„¤¤º°¨ ø„¸¸„¨ ø„¸¸„ø¤º°¨¨°º¤ø„¸¸„ø¤º°¨¨°º¤ø„¸ ¨°º¤ø„¸ GOD EMPEROR DIO BRANDO¨°º¤ø„¸ ¨°º¤ø„¸ DIO BRANDO GOD EMPEROR¨°º¤ø„¸ ¨°º¤ø„¤¤º°¨ ø„¸¸„¨ ø„¸¸„ø¤º°¨¨°º¤ø„¸¸„ø¤º°¨¨°º¤ø„¸ Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.