├── .gitignore ├── README.md └── rfsbundlescraper.js /.gitignore: -------------------------------------------------------------------------------- 1 | /indiegalasite 2 | /.idea 3 | /bundlestars 4 | /humblebundle 5 | /scratch-files -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # This project is no longer maintained 2 | 3 | # RFS Bundle Scraper 4 | 5 | This has turned into a script that will not only scrap Indiegala bundles, but will also scrape Humble Bundle. All of the information is then printed neatly in JSON for your own consumption. 6 | 7 | A companion website will be made available 8 | 9 | 10 | ### How to use 11 | 1. Copy `javascript: (function() {s = document.createElement('script');s.setAttribute('type', 'text/javascript');s.setAttribute('src', 'https://cdn.rawgit.com/realityfluxstudios/RFSBundleScraper/v1.1.1/rfsbundlescraper.js');document.body.appendChild(s); })();` into the 12 | URL part of a bookmark. 13 | 2. When on the bundle page of either IndieGala or HumbleBundle, simply click the bookmark you just created. 14 | 15 | A textbox will appear in the lower right side of the screen. This will contain the JSON data of the items in the 16 | bundle. 17 | 18 | There are a couple reasons why the JSON won't instantly appear in the textbox on the first try. If the bundle is one 19 | of the newer ones that requires linking to Steam then you will need to click the `Auto Click` button above the 20 | textbox. This will click all of the guest link images and create gift links so that they can be given out. Don't 21 | worry, you can claim them for yourself as well later. 22 | 23 | If you have multiple copies of the same bundle you can go to each successive page and run the script and it will 24 | properly combine the serials/urls for the same item. 25 | 26 | When going to a new bundle, be sure to hit the `Reset/Clear` button to clear the local storage data so the JSON will 27 | be accurate based on the current bundle. 28 | 29 | When all else fails, clear the localStorage `click reset/clear` and hit `reload` this removes the text area, 30 | attaches the script (and supposed to remove the previous one) and re-runs the script on the page. 31 | 32 | Indie Gala 33 | ========== 34 | 35 | Nothing special for this site. It is pretty straight forward. Go to each gift url and click the RFS Bundle Scraper Bookmarklet. For multiple copies of a single bundle just go to the subsequent gift urls and open the bookmarklet 36 | again. It will automatically combine the data properly. 37 | 38 | IG's DRM free stuff is not protected in any way so the URLs are good forever. Guard these URLs because if they get out then 39 | the developers are getting cheated if people just download their games without paying. They released their games DRM free 40 | with the trust in their fans that they wouldn't betray their intellectual property rights. 41 | 42 | **Note** There is currently no check to see if it is the correct bundle it's combining with, so in the case of a mistaken 43 | combination, just clear the data and refresh the bookmarklet. 44 | 45 | Humble Bundle 46 | ============= 47 | With HumbleBundle it's pretty much the same thing. The main library page is ALL of the DRM free files. This can be scraped 48 | as well and I will be using this data as a way to update all the URLs for the drm free stuff in the database. As it stands 49 | right now (Sept 10) it will not detect duplicates. This same information is given within the individual bundles. I prefer 50 | to get the information from the bundles first and then use the main library page to update the urls as needed (eventually). 51 | 52 | _The rake tasks now detect entries already in the database and simply updates the HTTP and BT urls that expire after about a week. 53 | And this is only required for the DRM free items, of course, which means everything listed on the main library page. So it is 54 | my suggestion that you go through every single bundle you have, first, so you can get the bundle information on the DRM free 55 | items and then, as needed, run the bookmarklet on the library page and then run the `rake import_hb` task again to update the 56 | urls as needed._ 57 | 58 | Bundle Stars 59 | ============ 60 | Please see the [RFSBundleScraper Wiki](https://github.com/realityfluxstudios/RFSBundleScraper/wiki/BundleStars) for more 61 | information on importing data from BundleStars. 62 | 63 | ### History 64 | 65 | Since I found out about IndieGala I have loved the idea and have put in quite a bit of money towards the charities and publishers of these great games they offer. 66 | 67 | I have multiple copies of each bundle and found myself wanting to easily retrieve all the keys and download links of the games and music that are available from some of the bundles. 68 | 69 | I wrote this bookmarklet to add a text box and a tab delimited list of all the games, music, drm free games, and android games of the bundle on the current page. 70 | 71 | I am releasing this to the public in the hopes that it will be useful to others. Also, if IndieGala or HumbleBundle changes up their code I hope to have some help updating the code once in a while. I just updated it to their latest changes (May '14). 72 | 73 | ### To Do 74 | * submit one in the issues area! :) 75 | 76 | ### Known Issues 77 | * submit one in the issues area! :) 78 | 79 | ### More Info 80 | 81 | If you like what I am doing and would like to contribute please feel free to fork and send a pull request. 82 | I would love to know how you found my repo and how you are using it. I also would be happy to share more 83 | info on how I am creating the game database. I am using a Ruby on Rails backend with a JSON API and AngularJS 84 | for the frontend. 85 | 86 | ## Change Log 87 | (this is not a comprehensive list of changes) 88 | 89 | ### 30Aug14 - v0.8242206 90 | * Everything is working well for both IndieGala and HumbleBundle. 91 | * BundleStars is not automatically harvested. There are detailed instructions on how to retrieve the data from 92 | BundleStars in the Wiki 93 | 94 | ### 19Aug14 - v0.8191640 95 | * Integrating Humble Bundle code 96 | * Cleaned up repo a lot to just be the bare essentials. 97 | * Added css inline so bootstrap isn't required and it looks decent. 98 | 99 | ### 14Aug14 - v0.8140125 100 | 101 | * Updated for changes to IG layout 102 | * Supports both old (with steam key visible) and gift link url 103 | * Auto clicks (with a setting to disable it) all gift links on a bundle page 104 | 105 | ### 13May14 - v0.1 106 | 107 | Initial Release on GitHub 108 | -------------------------------------------------------------------------------- /rfsbundlescraper.js: -------------------------------------------------------------------------------- 1 | var VERSION = '0.8301220'; 2 | 3 | var rfsbundlescraper = { 4 | 5 | combine: false, 6 | exists: false, 7 | debug: true, 8 | bundle: { 9 | title: '', 10 | title_slug: '', 11 | site: '', 12 | games: [] 13 | }, 14 | 15 | run: function () { 16 | 17 | this.utils.detect_site(); 18 | 19 | if (this.utils.site.indiegala) 20 | this.indiegala.ig_run(); 21 | else if (this.utils.site.humblebundle) 22 | this.humblebundle.hb_run(); 23 | }, 24 | 25 | rerun: function () { 26 | this.utils.clearText(); 27 | 28 | this.run(); 29 | }, 30 | 31 | utils: { 32 | json_names: { 33 | humblebundle: 'rfshbbundle', 34 | indiegala: 'rfsigbundle' 35 | }, 36 | href: window.location.href, 37 | site: { 38 | indiegala: false, 39 | humblebundle: false 40 | }, 41 | interval: 0, 42 | ig_giftLinks: $('#icon-gift img'), 43 | hb_giftLinks: $('#steam-tab img'), 44 | hb_interval: 0, 45 | cacheBuster: 0, 46 | oldCacheBuster: 0, 47 | firstReload: true, 48 | rfsSettingsTextHeight: 400, 49 | rfsSettingsTextWidth: 315, 50 | 51 | appendText: function (value) { 52 | $('#rfs-games-list').val($('#rfs-games-list').val() + value); 53 | }, 54 | 55 | clearText: function () { 56 | $('#rfs-games-list').val(''); 57 | }, 58 | 59 | add_floating_textarea: function () { 60 | $('body').append('