Skip to content
View in the app

A better way to browse. Learn more.

Tip.It Forum

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Ronan

Members
  • Joined

  • Last visited

Everything posted by Ronan

  1. Keep in mind it's a HTTP 200 status response, alongside Content-Length being 0 - just thought i'd clarify that!
  2. Hey, that's great Markup - they could be very useful as a starting point for those not looking to parse the full G.E to populate a database, cheers! (Although they're 403ing at the moment!)
  3. Cheers for putting that online - there's a few differences to what mine was so that's quite interesting to see how someone else would do it! I don't have much of a chance to test it at the moment, but I'm interested that a 5 second wait time is enough to not throw up any blocking errors from Jagex. Although, granted; in my testing I was parsing the item's pages after searching for pages - a further 3,400+ requests is going to change things! I did notice a couple of small things, Line 114 in Program.cs, you set reserror to indicate a WebException: catch (WebException ex) { PageErrors.Add(bs[i].ToString() + " Error:" + ex.Status); reserror = true; } if (reserror == true) { reserror = false; continue; } As far as I can tell, reserror isn't used anywhere else - it'd make more sense to just continue inside the catch-exception block rather than flag an error? I also noticed that your PageLoader class uses ArrayList as it's base class. To me that seems a little counter-intuitive, the class is making use of an ArrayList, rather than actually extending it? It seems cleaner to just have a class variable storing the ArrayList and accessors to that - less coupling that way. Lastly, I see you're not checking for Jagex blocking requests. When they block a request, they return a HTTP 200 OK status, which means no WebException is going to occur - the way to identify it is that the Content-Length response header indicates 0 length. Right now it looks like you're just skipping over this if there is no content - or, possible worst case, passing an empty string to the Json Converter? The biggest trouble I found with this is integrating it into a library such that callers either, 1) Don't have to deal with bottling issues / exceptions or 2) Have to catch the exception and re-send the request. I resorted to providing access to the library API through a gateway, where exceptions had to be caught; but alongside this I constructed an Asynchronous requester which allows callers to request callbacks when the page is retrieved - which would be whenever Jagex stop blocking the requests. Other than those, I do like it - there's a few points in there that I hadn't thought of and I like the Json parser, wasn't aware of JavascriptSerializer. Nice job! =D> If you're interested in seeing the API I constructed, I've thrown that up on GitHub: GitHub - GeApi. It's nowhere near perfect but may give you some ideas like yours did mine!
  4. Hey, my chair does exactly this! Haven't ever used it like that though, it actually is pretty comfy, although I feel like I want to be closer to the screen!
  5. Sounds like you went through the same thought process as me then - good stuff! Look forward to seeing the result.
  6. Sounds interesting - I actually experimented with this on a project not too long ago. Have you considered making it a library rather than a console application - extending it's usage a bit further abroad? Another point to note - how have you handled actually finding the IDs? The obvious initial attempt would be to iterate up to some given number testing the page responses are valid, but that's highly inefficient for both the utility and server requests! My final design used the category API to find how many items fall into each starting letter for each category, and then requested the search pages for these - which ended up compiling a list of all the valid (tradeable) IDs - as you say, ending up at around 3,400. A fairly smaller number than 20,000+! Did you do anything similar? Yet another good discussion is how you handled Jagex's temporary throttling of server requests? I've tried multiple ways; randomised timeouts, exponentially increasing timeouts, varying request time-spans - all not quite meeting an optimum point. I even attempted to craft multiple GET requests and send those along at once: still throttled. Any luck on your end? It'd be nice to have some guidelines on API usage from Jagex, but I don't believe that they'll ever be particularly forthcoming about parsing the full database quickly... Also, JSON.Net for parsing the responses?
  7. That's pretty awesome - congratulations on those! :)
  8. Ronan commented on Juhnie's blog entry in Juhn's Blög
    Congrat's on the Rock Band ranking - I'm utterly rubbish with the vocals but can manage Drums and Guitar pretty well on most songs. Damn that Bass pedal - same thing happened for me, ended up just fixing it myself - got a nice metal-covering over it now! :) Good luck with the rest of the exams!
  9. Ronan commented on Dax's blog entry in Dax's Blog
    According to the skill's milestone guide - the skillcape is a milestone at level-99, but it looks like 'True mastery' yields a trimmed skillcape too? I'm rather confused if this means that that'll be the same as the standard trim or something different, but the guide seems to suggest 2 variants. Either way, good luck with the goal - the skill is pretty fun! :)
  10. Nomad's got quite the ego to find his position on top of such a magnificent throne! ;) Congratulations on beating him!
  11. Well, shiny new forums are pretty awesome! Take some getting used to though... My main blog is going to be at my thread on BlogScape's forums: here. However, i'll use this more personally-linked blog to just post updates on my daily experience gains / goings on and mirror that with my official thread. So, today was a pretty awesome day actually. Gained a whopping 440k experience in Agility, bumping me up to be only a little under 200k experience until 93, w00t! :) Farming's going very well, only got 2 days left of runs to do, I'm ~440k experience left until 99, going to be awesome! :^_^:

Important Information

By using this site, you agree to our Terms of Use.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.