Fourchan::Kit

Fourchan::Kit is a Ruby wrapper and tool for the 4chan API. Use Fourchan::Kit to interact with the API using Ruby, or use the tool to interact with the threads on 4chan.

Installation

[sudo] gem install fourchan-kit

Usage

Be sure to checkout out the documentation, if you are in doubt of how something works.

Using the Board class

require 'fourchan/kit'

g = Fourchan::Kit::Board.new 'g'
g.threads(1)   # All threads from the first page (but not replies)
g.posts(1)     # All threads and its replies

g.all_threads  # All threads for the board (but not replies)
g.all_posts    # All posts and its replies for the board

That's pretty much all there is to Board. They all return an array of Post, so it's possible to do:

g.threads(1).first.no          # => 39894014
g.threads(1).first.image_link  # => http://i.4cdn.org/g/1390842451744.png

Using the Thread class

For now it needs a board and a thread number. Later it might be possible to give an URL instead.

require 'fourchan/kit'

t = Fourgem::Thread.new 'wg', 5777336
t.op       # Return thread starter
t.replies  # Return all replies to the thread (excluding OP)
t.posts    # Return all posts in thread (including OP)
t.images   # Return an array of all images (links to the images)

# Each post is a Post object (OpenStruct)
t.posts.each do |post|
  post.image_link  # => 'http://i.4cdn.org/wg/1398597510994.jpg'
  post.com         # => 'Hey,<br>Some one on my FB took ...'
  post.tim         # => 1398597510994
  post.ext         # => '.jpg'
  post.no          # => 5777336
  post.name        # => 'Anonymous'
  post.sub         # => 'Urban/Architecture'
end

Using the binary

$ fourchan help
Commands:
  fourchan download        # Download all images from a thread
  fourchan help [COMMAND]  # Describe available commands or one specific command
  fourchan lurk THREAD     # Look for new messages and/or download new images

$ fourchan download -u http://boards.4chan.org/wg/thread/5777336 -o buildings
Downloading: http://i.4cdn.org/wg/1398597510994.jpg @  428.81kB
Downloading: http://i.4cdn.org/wg/1398597561903.jpg @  324.91kB
Downloading: http://i.4cdn.org/wg/1398617625457.jpg @  222.96kB
Downloading: http://i.4cdn.org/wg/1398617657152.jpg @  572.74kB
Downloading: http://i.4cdn.org/wg/1398622970113.jpg @ 1122.49kB
$
$ cat threads.txt
http://boards.4chan.org/wg/thread/5777976
http://boards.4chan.org/wg/thread/5777265
http://boards.4chan.org/wg/thread/5721
$
$ fourchan download -f threads.txt
Getting images from thread: http://boards.4chan.org/wg/thread/5777976
Downloading: http://i.4cdn.org/wg/1398648908295.jpg @ 1618.35kB
Downloading: http://i.4cdn.org/wg/1398649547061.jpg @  634.04kB

Getting images from thread: http://boards.4chan.org/wg/thread/5777265
Downloading: http://i.4cdn.org/wg/1398591368018.jpg @  182.12kB
Downloading: http://i.4cdn.org/wg/1398593765693.jpg @  713.01kB
Downloading: http://i.4cdn.org/wg/1398593933823.jpg @  678.24kB
Downloading: http://i.4cdn.org/wg/1398626568293.jpg @  462.13kB
Downloading: http://i.4cdn.org/wg/1398627582485.jpg @  283.39kB

Getting images from thread: http://boards.4chan.org/wg/thread/5721
Not a 4chan thread

$

Lurk is pretty much the same as download -u THREAD, it does not finish after downloading though, but rather keep checking for new images. User can define the interval between checks.
See fourchan help lurk.

Why Fourchan::Kit?

I wanted to try and make a Ruby gem, so it's basically just a little, personal project.

Also with the new changes to the 4chan API (use /thread/ instead of /res/), a lot of old 4chan gems are dead. Fourchan::Kit might be able to replace some of those dead gems.