Skip to content

Latest commit

 

History

History
50 lines (40 loc) · 1.86 KB

README.md

File metadata and controls

50 lines (40 loc) · 1.86 KB

CloudflareUn

Help Pharo pass through to Cloudflare guarded website.
Background discussed at blog.openinworld.com

Responsibilities

I gather the magic keys required to enter a Cloudflare guarded site. Give me a URL to knock on, and I'll return a factory for generating ZnClients configured with the magic keys.

Collaborators

cloudscraper is a nodejs library. Its where the magic happens to obtain the Cloudflare keys.
OSProcess is used to shell out to nodejs.

Class-side Public API and Key Messages

knockURL: aHostUrlString provides the url used for initial access.

Instance-side Public API and Key Messages

client returns a new ZnClient configured with the magic keys.

Usage

|client response| 
client := (CloudflareUn knockUrl: 'http://bittrex.com') client.
client url: 'https://bittrex.com/home/markets'. 
(response := client get) inspect. 
"Note: Cloudflare enforces a five second delay, so unless you fork, expect UI to block for 5 to 10 seconds"

Installation

On Ubuntu 16.04...

$ sudo apt-get update  
$ sudo apt-get install nodejs  
$ sudo apt-get install npm  
$ npm install cloudscraper  

In Pharo 6 or 7...

  1. Start Iceberg, click <Clone repository> and fill in the following details, then click <Create repository>
  Remote URL = [email protected]:Traadh/cloudflareun.git
  Local directory = (use default)
  Code subdirectory = src
  1. In Iceberg main panel, click on "clourdflareun", then its [pacakges] tab. You'll see "CloudflareUn" status "Not loaded". Right-click on it and select <Load package>

  2. Since there is not yet a Baseline, in Playground evaluate...
    CloudflareUn installOSProcess

  3. Verify requirements, in Playground evaluate...
    CloudflareUn checkInstallNodeJs