RuneScape Wiki


13,446 Edits since joining this wiki
February 4, 2011

2011-12-14 - 2012-03-28
2012-03-30 - 2012-10-18
2012-10-18 - 2012-11-24
2012-11-26 - 2013-05-31
2013-06-02 - 2013-12-19
2013-12-26 - 2014-09-25
Page size: 25,044 bytes
Archive at: 50,000 bytes

Feedback abuselogEdit

Why was it hidden from public again? How would willing editors know what to improve on the page, if the feedback for said page is offlimits? --Jlun2 (talk) 02:16, September 27, 2014 (UTC)

RSHiscores UpdateEdit

Hi, I am TehKittyCat, or well Catcrewser until the renaming finishes and the account is unlocked so I can reply to this to confirm it is indeed me (although an IP lookup would confirm). I'm in the process of becoming active again and noticed RSHiscores is working again, which means Wikia finally fixed their firewall (the debug code was temporary to confirm it was on Wikia’s side and not a block by Jagex). As such, I would like to remove that debug code, cleanup RSHiscores (I went blind when I saw my coding style on it yesterday) and fix its design shortcomings that exist in the age of Lua and (in-hindsight) for the JS calculators it was primarily designed for. I saw in Forum:Scraping hiscore data for calculators that you were most familiar with the code, so I thought I would it be best to collaborate with you. I agree with adding a data parameter, in-fact that’s what I should have made the extension output by default, but I was focused on reducing processing time for template usage by doing everything in-code rather than with parser functions, that I neglected that JS could just do a single call for the raw data and parse everything itself. Do you think the parsing on the extension-side is still beneficial in this Lua/JS age? Given its purpose for all-things hiscores I am considering adding support for the 2007scape hiscores and the new JSON-based apis as well, but haven’t decided on the interface. In context of that thread, I would like to confirm the limit is two users (for comparisons), not two calls, since I was concerned of the possibility of abuse and before I wrote the extension attempts to use YQL(see the existing calc.js) and other sites like anyorigin were made, but they were unreliable and subject to limiting. Ultimately the best solution is for Jagex to add CORS headers to their APIs, for which the Origin header would prevent the abuse of. At the time, support for that wasn’t widespread so didn’t pursue suggesting that (although I did propose the GE APIs that now exist). Do we still have contacts to suggest this, such as the fansite email? In the meantime I’ll fix RSHiscores. Btw, the code is now at [1] and I've added the full history, including Wikia's changes, please feel free to submit any changes there. -- 17:50, September 30, 2014 (UTC)

Hi :) I saw your userpage update the other day and have been meaning to ask you about it, but sadly haven't found the time to sit down and work out what we need. I have to say I was pleasantly surprised to find it still worked, I was expecting it to only work with the API as you'd last seen it which didn't reflect new skills/minigames being released. If you're looking to redo some of it, it might be worth taking a look at the current standard of parser functions set out by mediawiki. I'm not sure if they've changed all that much but they've made a number of large scale changes since RSHiscores was originally written, so it's probably worth checking just in case.
With regards to lua, it's not possible to convert the extension to pure lua at the moment, due to mediawiki's stripped down version of lua not having any way to make http requests. I think LuaSocket adds this functionality, but I haven't got around to exploring how likely it is for us to get that. In the mean time, an extension is probably the best way to go about getting the data. As for the parsing, lua could do the job but I don't think there's much difference about where it happens as long as we can update it when we need. Unfortunately, code updates made by 3rd parties to the wikia codebase can take weeks, or even months, to be merged so perhaps we should factor that in when considering any updates or relocation of parsing.
As for the fansite contacts, I'm not sure what's going on with that at the moment. There were a few incidents recently, last I heard we're waiting on a reply to an email discussing a number of issues. However, as this is more technical I don't see why it would conflict with that discussion and it's certainly worth a try. cqm 00:07, 1 Oct 2014 (UTC)
Thanks for replying here, I don't know where best to reply is either, it has been two days for far. Yeah, I specifically made sure to relatively future-proof the extension after Jagex changed the API to add minigames and knowing Wikia's slow updates I left the skill naming to templates. I didn't mean convert the extension to Lua, but I can add extensions to the Lua side or at least make it native (otherwise the returned numbers are Lua strings), for example ParserFunctions does this, though for now something like frame:callParserFunction( '#hs', { 'TehKitty-Cat', 0 }) should work. I know the slow update routine, it took 2 months to get the extension added the first time and about a month for every update to it. I'll try an email. Just let me know any suggestions you have, I'll try to add a plan to wiki page or maybe track it on Github. If IRC would be a better place to discuss this, just let me know. -- 00:59, October 1, 2014 (UTC)
Here is my draft email for proposing adding CORS headers to the Hiscores API, I'm going to think it over a bit more before sending, so feel free to suggest any changes before I send it. -- 03:12, October 1, 2014 (UTC)
I'd suggest expanding the CORS headers scope to the GED API as well as the hiscores api and any other jagex might have such as the bestiary. I'm not sure if the GED API actually returns application/json as the content type either (YQL, Anyorigin and Whateverorigin all return something slightly different) so maybe we could get them to check that at the same time?
I am curious why you added both a parser function and a magic word in the extension. Assuming the parser function returns either the parsed data or the entire data string (in a sort of .csv format), adding a magic word would prevent the template from working removing the local level of control. Or have I misunderstood something? Incidentally, {{hs}} isn't a magic word, so I got a bit confused when I was looking at it cqm 10:03, 1 Oct 2014 (UTC)
Okay, I'll expand the scope of the request, I meant to, but I overly focused on the hiscores API. Incidentally, it doesn't matter the content type, all cross-origin requests through XMLHttpRequest are blocked by default. It turns out the restriction can be disabled for testing using '--disable-web-security' in Chrome. Unfortunately, with my account locked (I decided 3 days was long enough before requesting a status update, so I just sent Wikia an email) I can't double check at the moment what I'm saying is true in practice. I'll get a calculator working with that disabled before sending the email though. Yeah, when I reviewed my code I was thrown off by the magic word as well, but removing it causes an exception, it turns out there are two types of magic words -- variables and parser functions. That said, the mechanism has been deprecated since I wrote RSHiscores, unfortunately that is what allowed me to use a single file, so since I have to add a i18n file for the magic word anyways, I'll make my extension laid out properly as required for use on Wikimedia wikis. The magic word is actually '#hs', because unless it's added with the 'SFH_NO_HASH' flag, the parser function magic word gets a '#' prefix. -- 19:33, October 1, 2014 (UTC)
Here is an updated draft email, I think it better handles the issues and resolves concern about the other APIs. -- 20:04, October 1, 2014 (UTC)
That looks good :) Let me know what they say, or if the do at all cqm 18:36, 4 Oct 2014 (UTC)
As of a week ago, it was passed to the web team. I haven't heard anything since, hopefully because of RuneFest. I'll get back to updating RSHiscores and adding commented-out JS support for if/when Jagex implements the CORS changes. - TehKittyCatTalk Wikian-Book 14:49, October 14, 2014 (UTC)
Yep, Wikia never replied back after determining the problem was the rename job stalled, so I decided enough was enough and moved the pages myself. I merged the pull request, the repository is already much better than the wiki page. That's fine, eventually I planned to do that anyway as part of code style, though currently I'm trying to get a local instance of Wikia running for better testing. I managed it 3 years ago, hopefully Wikia hasn't broken things too much more. - TehKittyCatTalk Wikian-Book 17:46, October 14, 2014 (UTC)

Resetting indentation level. Sorry for not responding here sooner, but I saw your replies and work on GitHub, then ended up carried away coding. Please check the latest code for the results of that. I'm not done, but I think the code is in much better shape, especially after your restructuring and cleaning, along with my initial conversion to OO-style. To-do is still support for raw data, double-checking Lua handling, support for other hiscores, and general reusability (aka splitting render). I don't like how I had to initialise cURL, but unfortunately PHP lacks static constructors. I've seen MediaWiki's vagrant, but haven't gotten around to setting it up yet, however, I am using MediaWiki with full debugging enabled. I hit a dead-end on the Wikia setup and didn't feel like digging through backups to find how I fixed the code and setup the tables years ago, so I'll just copy over as needed for testing. - TehKittyCatTalk Wikian-Book 17:23, October 17, 2014 (UTC)

Adding OS hiscores support at this point is simple, but before I do anymore changes I need to really plan out the interface and test the calculators locally, especially since I just remembered why the original API did what it did, but proving the reasons right or wrong will require some testing. Looking at the existing calculator JavaScript, I am really rethinking how the calculators work for reflow and caching purposes, but that shouldn't cause any changes to my work here. The other APIs will require a different interface, if supporting existing parser function usage is wanted, I could default to the old interface when the first parameter is an int, though the only usage I know of are the hiscores on my user page. I'm also a bit leery of using the PHP JSON support because of memory leaks and security issues years back, so I'm going to make sure that is all fixed first. - TehKittyCatTalk Wikian-Book 01:08, October 18, 2014 (UTC)

By the way, checkout User:TehKittyCat/Litterbox/3. It turns out what I just remembered served well, all that is needed is mostly cleanup to get good working hiscores calculators. It seems some have been poorly copy+pasted, which works fine when hiscores aren't looked up, but in the case of the fletching calculator it looked-up firemaking's experience once I added the name field. That said, I'm sure the RSHiscores changes could still be helpful and I'll add falsed-out code for if Jagex ever adds the CORS headers. - TehKittyCatTalk Wikian-Book 03:39, October 21, 2014 (UTC)

wait when did you archive um um THIRDEdit

what is this? do you still need it? Matt (t) 23:40, September 30, 2014 (UTC)


Special:AbuseLog/66443 MolMan 20:57, October 1, 2014 (UTC)


Is it possible to adjust the highlighting/selection colour, or is that chosen by the browser? Because it is currently showing like this for me, which barely stands out compared to the default/original. IP83.101.44.209 (talk) 05:22, October 4, 2014 (UTC)

Guess I'll go and blame FireFox then. The selection works fine on your talk page text, btw; not elsewhere. Now to figure out how to add that CSS override. Thanks, IP83.101.44.209 (talk) 09:25, October 4, 2014 (UTC)
On another note, I believe the CSS class "messagebox" still needs to have its colours changed to the new theme; as seen on Template:FromGame. IP83.101.44.209 (talk) 11:52, October 4, 2014 (UTC)

Mol told me to tell you about RuneScape:Active discussions still looking like the old theme Ancient talisman Oil4 Talk 17:27, October 4, 2014 (UTC)

Sortable TablesEdit

Hi Cqm, I'm having problems with sortable tables on certain pages that I edited and was wondering if you could help fix them and let me know what was causing this problem. I previously asked both IP83.101.44.209 and User:The Mol Man but sadly they doesn't know the answer to this and redirected me to you.

The issue seem to be that they do not follow alphabetical/numerical orders when sorted ascending/descending. I looked up various guides on the Internet, and found out that they are sorted in ASCII order, in which it usually is fine but sometimes get mixed up with large number values. Thus, I added the attribute "data-sort-type" on the column row headers depending on what order it needs to be sorted by. However, the problem still persists in which certain columns do not follow alphabetical order, and sometimes even the numbers too even after I clearly used the "data-sort-type="text"" and "data-sort-type="number"" respectively. So why is it that it is still not sorting in numerical/alphabetical order?

A clear example is the Solomon's General Store/Animations page I have been editing for the past few days. I used class="sortable" but certain numerical (and alphabetical) orders are messed up. Oddly enough, ascending/descending the sortable "Runecoins" column is fine, but when it came to sorting the "Loyalty points" column that has both number values and the template {{N/a}}, the order was a mess with both ascending and descending! The same goes for the "Restriction" column which was suppose to follow alphabetical order for easier type sorting, but unfortunately the sorting itself is chaos.

I would really appreciate it if you could look into this problem, and inform me about anything that must/mustn't be done in my future sortable table edits to prevent this from happening again. Thanks, JustAlmond toffeecute

It is fine with me thank you, take your time. Though do you think that this might really be a bug? Because if it is, I'm quite surprised that this is overlooked.
Here is a list of the pages that has sortable tables that are also disarranged when sorted (note that these are probably only few of the pages that I am aware of because I edited them in the past). Some of these pages already contain the attribute "data-sort-type" on selected columns because I experimented them myself. Tables of pages:
  • Solomon's General Store/Equipment - Runecoins column is correctly sorted for both ascending and descending. Loyalty points column is sorted in opposite (ascending is descending and vice versa) with the {{N/a}} template carrying a large value to be at the top when sorted descending.
  • Solomon's General Store/Accessories - Runecoins column is correctly sorted for both ascending and descending. Once again, Loyalty points column is in disorder when certain {{N/a}} templates fit themselves before and after selected values, and even the descending/ascending values aren't accurately sorted (bigger value after smaller/smaller after bigger value with numerous odd {{N/a}} template interruptions). Slot column follows a differently odd order when sorted in both ascending/descending instead of being sorted alphabetical order.
  • Solomon's General Store/Combat Gear - Runecoins column is correctly sorted for both ascending and descending. Loyalty points column experiences the same problem in sorting with the previously explained Solomon's General Store/Accessories page table with values being messed up in order with odd {{N/a}} template interruptions. Overriden Weapon Type column follows a differently odd order when sorted in both ascending/descending instead of being sorted alphabetical order.
  • Solomon's General Store/Titles - Runecoins and Loyalty points column is correctly sorted for both ascending and descending. Affixment column follows a differently odd order when sorted in both ascending/descending instead of being sorted alphabetical order, even with only 2 distinguishable values.
  • Solomon's General Store/Services - Runecoins column is correctly sorted for both ascending and descending. Loyalty points column is correctly sorted in ascending/descending values (assuming that due to the lack of number values), with the persisting problem of the odd {{N/a}} template interruptions.
  • Solomon's General Store/Animations - As you've seen this page yourself, Runecoins column is correctly sorted for both ascending and descending. Loyalty points column once again experiences the same problem in sorting with the previously explained Solomon's General Store/Combat Gear (and Solomon's General Store/Accessories) page table with values being messed up in order with odd {{N/a}} template interruptions. Restrictions column (all tables except Home teleports table) follows a differently odd order when sorted in both ascending/descending instead of being sorted alphabetical order.
In conclusion, you will notice the similarity of having the first few (usually only the first one) columns being sorted correctly in numerical order (due to having the price coming first before further informations). Consistent problems with these page tables when sorting include the tendency of not following numerical order, followed by the odd interruptions {{N/a}} template, and also the tendency of not following alphabetical order. Attribute "data-sort-type" are only added on selected columns due to experimentation and in general, they seem to bring almost no benefit when sorting (only the few columns which are sorted in numerical values usually benefit from this).

This page has sortable tables, but seem to work fine as it is, even without any attributes to sort them. Strangely, all values from the following tables are sorted in order but tables of the Solomon's General Store/Titles (explained earlier) which are not far off in differences of the table information, seem to experience this issue. Tables include:

And just when you might think the problem arises with the rowspan/colspan, I highly doubt that it is. Mainly because usually a whole different attribute doesn't affect one another, no? The reason why rowspan/colspan is present is to ensure information is conveyed in a easy, digestible way for those who dislike reading the already comprehensive texts on the pages, thus I tried to minimise the information used in a table, focusing more on only the values when possible. Regarding your question, rowspans exists because 2 different animations (as the example given) can only be purchased from a single pack (2 in 1) and can be separately selected in the Animations Customisation interface. Rowspan exists in this case to include two rows because of this similarity.JustAlmond toffeecute

So is there anything I could help around for now as you try to troubleshoot this issue? I'm not really a person who is experienced in coding, I usually just follow instructions I find but if there's something I could help with, I will try my best.
Speaking in which, have you tried tweaking the rowspan/colspan around to substantiate the fact that it is indeed the cause of this issue? Just so you know, the sorting disorder also exists where the template {{N/a}} isn't used (as mentioned in my last post). In actual fact, some columns that experience sorting disorder previously mentioned also does not use rowspan/colspan because these attributes are only used selectively. Thus this is why I highly doubt that it has any relations to the problem unless they correlate one another.JustAlmond toffeecute

RE: Historic volume dataEdit

replied in my talk page.   az talk   00:49, October 15, 2014 (UTC)


(What line is that roughly?) What I think I would have done that for is as a potential fallback for blank pages, where the template had been added but no prices entered yet. I'm not sure though, because I didn't quite find what piece of code you meant. Anyway, I think it might as well have been a just-in-case piece of code, as I do usually build in fallbacks for situations I can imagine happening without seeing any case of it going wrong yet. JOEYTJE50TALKpull my finger 17:01, October 20, 2014 (UTC)

Ah I think I built that in because when I wrote this script, the GEDB was having some problems every now and then, displaying a whole lot of zeroes for some items that didn't have enough data yet, or something. I'm assuming that GEDB bug has been fixed long ago already, but I do recall there being some problems with it back when I wrote this (I should have really added some documentation to my scripts Blush emo). Anyway, I'm assuming it's not really needed anymore. I've tweaked it a bit to also check for unixnow == 0 for the reason you mentioned, and I've also added some documentation-comments.
And for the NaN check, I found that somewhere on the internet (I'm guessing some StackOverflow question), and I decided it was better than an isNaN(x) test, because this test also discards float inputs, and the GE only uses ints. JOEYTJE50TALKpull my finger 11:19, October 21, 2014 (UTC)
Looks really good! Really easy to follow too, with all the comments. I've made a few fixes and/or changes, and added a note about the manual submission when the GEDB is down (in a // @todo comment). Anyway, it looks great! JOEYTJE50TALKpull my finger 12:08, October 22, 2014 (UTC)
PS: Are there any updates about Wikia adding mw:Extension:Tabs to this wiki? JOEYTJE50TALKpull my finger 17:00, October 22, 2014 (UTC)
Well, I changed it because that's more specific. What you're checking is if it's not -1, so it's clearer to make the code represent that. Of course > -1 will do exactly the same in this case, and it's even exactly as fast as !== -1, but with !== -1 it's more obvious what you're doing. If you think > -1 is better, you can change it back of course, it just seems more obvious what you're doing if you use !==. JOEYTJE50TALKpull my finger 15:03, October 23, 2014 (UTC)

Exchange modulesEdit

Just a few questions... Is it possible to:

  1. Add commas for the numbers? Prices, value, limit, etc. (except itemID of course). It is hard to differentiate between 10000000 (10m) and 100000000 (100m). This was discussed earlier, I believe, and the decision was to add commas to the prices (and other info) for user-friendly-ness. I know some would say that only bots do the updates, but let's assume that people need to be able to see/decipher the Module pages as well.
  2. Remove all the "--" comments?
  3. Rearrange the parameters? "Usage" can be placed last, after "Examine". And "itemId" should come up first, before "price".

And, does the GEMW graphs work with the new format in "Module:Exchange/Item/Data"? If I'm not mistaken, you need a "name" parameter to display the title for the graphs.   az talk   02:55, October 23, 2014 (UTC)


Can you write a short function that can get the price of a specified item, for use in other modules? e.g. price = require('Module:Exchange')._price would allow me to get the price as a raw, unformatted number with price('Abyssal whip'). MolMan 16:26, October 23, 2014 (UTC)

Why monobook no border?Edit

sorry for taking up so much space!   az talk   08:34, October 31, 2014 (UTC)


Around Wikia's network

Random Wiki