aboutsummaryrefslogtreecommitdiff
path: root/levels/borgar.net/get-levels.rb
diff options
context:
space:
mode:
Diffstat (limited to 'levels/borgar.net/get-levels.rb')
-rw-r--r--levels/borgar.net/get-levels.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/levels/borgar.net/get-levels.rb b/levels/borgar.net/get-levels.rb
new file mode 100644
index 0000000..b059cf6
--- /dev/null
+++ b/levels/borgar.net/get-levels.rb
@@ -0,0 +1,17 @@
+#!/usr/bin/env ruby
+
+require 'open-uri'
+
+HOME_URL = 'http://borgar.net/programs/sokoban/'
+BASE_URL = 'http://borgar.net/programs/sokoban/levels'
+
+# read HTML, extract level sets
+open(HOME_URL).read.scan(/<option value="([^"]+)"/).flatten.each do |name|
+ # build source url and destination file name
+ src_url = '%s/%s.txt' % [BASE_URL, name.gsub(/ /, '%20')]
+ dst_path = '%s.txt' % [name]
+
+ # read url, write to path
+ puts dst_path
+ File.write(dst_path, open(src_url).read)
+end