dzone-refcardz-downloader

command module
v0.0.0-...-b122f16 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 12, 2022 License: MIT Imports: 10 Imported by: 0

README

DZone: Programming & DevOps Refcardz Downloader

Build Status GitHub license Version Go Report Card

What is DZone.com

  • DZone.com is one of the world's largest online communities and leading publisher of knowledge resources for software developers. Every day, hundreds of thousands of developers come to DZone.com to read about the latest technology trends and learn about new technologies, methodologies, and best practices through shared knowledge.

Requirements

  • Golang 1.10.2 or higher.
  • DZone free account.

Application

  • Run go run main.go.
MontFerret/ferret
  • New development is being tested under ferret/ folder.

Technical details of the solution

  1. Loop through the assets list websites - https://dzone.com/services/widget/assets-listV2/DEFAULT?hidefeat=true&page=XX&sort=downloads&type=refcard, where XX is 1 to XX (until this empty response is returned: {"success":true,"result":{"data":{"assets":[],"sort":"downloads"}},"status":200}). At the time of writing, there are 24 pages. See this example of the valid JSON response:
{
  "success": true,
  "result": {
    "data": {
      "assets": [
        <---------- OMITTED ---------->
        {
          "id": 520107,
          "title": "GWT Style, Configuration and JSNI Reference",
          "details": "Introduces Ajax, a group interrelated techniques used in client-side web development for creating asynchronous web applications.",
          "subtitle": "Using the Google Web Toolkit",
          "collaborators": "Jill Tomich",
          "downloads": 29488,
          "views": 115116,
          "cover": "//dz2cdn3.dzone.com/storage/rc-covers/2806-dzone_refcard_.png",
          "host": null,
          "url": "/refcardz/gwt-style-configuration-and-js",
          "tags": [
            "frameworks",
            "javascript",
            "server-side",
            "java",
            "web dev",
            "ajax &amp; scripting"
          ],
          "color": "purple",
          "type": "refcard",
          "pdf": "/asset/download/6",
          "authors": [
            {
              "id": 327457,
              "name": "Robert Hansen",
              "avatar": "https://secure.gravatar.com/avatar/ae431e508cbc54620c27a0d612d4f93c?d=identicon&r=PG",
              "url": "/users/327457/rhansen1392.html"
            }
          ],
          "saveStatus": {
            "saved": false,
            "canSave": true,
            "count": 63
          }
        }
        <---------- OMITTED ---------->
      ],
      "sort": "downloads"
    }
  },
  "status": 200
}
  1. On each of these asset list websites, extract the following information from the returned JSON file:

    • Title: '.result.data.assets[].title'.
    • PDF suffix: '.result.data.assets[].pdf'.
  2. Download the PDF by prefixing the PDF link with https://dzone.com, creating e.g. https://dzone.com/asset/download/279342 and save it as <Title>.pdf, e.g. GWT_Style,_Configuration_and_JSNI_Reference.pdf

Stats

Item Size
Refcardz 288
All files size 000 B (GB)

Stargazers over time

Stargazers over time


@luckylittle <lucian@redhat.com>

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL