Kimsufi/So-you-Start Avaliability Crawler
Crawler that will notify you when Kimsufi servers (or So-you-Start, or OVH) become available for purchase.
git clone https://github.com/MA3STR0/kimsufi-crawler.git cd kimsufi-crawler cp config.json.example config.json vim config.json # edit config.json file to set up your nofitication preferences sudo pip install -r requirements.txt python crawler.py
Dedicated servers on Kimsufi and So you Start have amazing prices, however they are always out of stock. This crawler will notify you as aoon as servers are available for purchase; it can send emails, show Mac OS notifications, open popup windows, or even trigger sms. Then hurry up, you have around 2 minutes to complete your order :)
Set it up
Runs on GNU/Linux, Mac and Widnows with Python 2.7+ or Python 3.4+
Clone this repo (
git clone https://github.com/MA3STR0/kimsufi-crawler.git) or download and unpack archive
config.json.exampleas a template, create a file
config.jsonand correct configuration according to your preferences:
servers: list of servers that should be tracked, eg
["KS-1", "KS-2 SSD", "GAME-2"]etc. All supported server names can be found in mapping file mapping/server_types.json as values)
region: desired location of server,
notifier: notification mechanism, choose between:
"email": default, requires additional email account settings
"popup": simple popup window, platform-independent
"popup_pywin": simple popup window, displays on top of all other windows (Windows only, requires pywin32 package)
"osx": Mac OS-X desktop notifications (using terminal-notifier)
"smsapi": sms through smsapi.pl gateway, requires account
"xmpp": send jabber/xmpp message, requires account - needs xmpppy
"pushover": send Pushover message, requires account - needs chump
"pushbullet": send Pushbullet message, requires account - needs pushbullet
"freemobile": sends sms to freemobile customer, requires account - needs requests
"telegram": sends message to a Telegram chat - needs python-telegram-bot
to_email: your email to receive notifications
from_email: email account of the crawler.
from_smtp_host: smtp configuration of crawler email account
xmpp_send_test: xmpp configuration of sending jabber account
pushover_user_id: your Pushover configuration, messages are sent to all devices assigned to user
pushover_priority: priority of the notification to receive. -2 is lowest and 2 is highest
pushbullet_apikey: your Pushbullet API key, notification sent to all devices
freemobile_username: your freemobile login
freemobile_key: your freemobile sms notification key
telegram_token: full token you receive from BotFather after creating a bot
telegram_chat_id: chat id you want to receive the message in. Retrieve by following for example this stackoverflow answer
Crawler runs on Python 2.7+ and Tornado framework 4.0+. Assuming that you already have Python/pip, just get Tornado and the notifier dependencies with
sudo pip install -r requirements.txt. You can also set up virtualenv if you like.
python crawler.py. If no error messages come, you're ready.
(optional) If your pip install command fails due to xmpppy being on pre-release version (eg. 0.5.0rc1) use:
sudo pip install --pre -r requirements.txt
(optional) In case of problems with easygui installation on Ubuntu, you can get it also with
sudo apt-get install python-easygui
(optional) It's a good idea to register an account on Kimsufi/OVH in advance; just pick any available server on www.kimsufi.com and sign up without paying. This way later you will only need to log in and enter payment details, which saves a lot of time.
You may test the whole chain by setting some popular servers in your config.json, for example ["KS-3A", "KS-3B", "KS-2E"]. Since those are always available, you should receive a notification immediately.
Crawler makes an initial check of the config file during startup, so if you have any syntax errors or missing software dependencies - console logs will let you know.
You can add more options to the config.json if you need:
"crawler_interval": 8// overriding default periodic callback interval in seconds (should be more than 7.2 to avoid rate-limit)
"request_timeout": 30// http timeout for API requests.
"from_smtp_port": 587// use non-standard smtp port
"use_starttls": true// forcing encrypted SMTP session using TLS (true by default)
"use_ssl": false// forcing encrypted SMTP session using SSL (false by default)
"from_user": "email@example.com"// if smtp user is different from
These instructions are based on Version 2 of the crawler. You can access last stable release of v1 by browsing through release history