Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: orijtech/arxiv
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: orijtech/arxiv
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: code-implemented
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 1 commit
  • 9 files changed
  • 1 contributor

Commits on May 14, 2017

  1. all: implemented the API client

    Implemented simple & advanced searching with
    all the categories and filters supported by arxiv.org.
    
    Sample usage
    * Preamble:
    ```go
    package main
    
    import (
        "fmt"
        "log"
    
        "github.com/orijtech/arxiv/v1"
    )
    ```
    
    * Simple search
    ```go
    func simpleSearch() {
      resChan, cancel, err := arxiv.Search(&arxiv.Query{
        Terms:         "deep learning",
        MaxPageNumber: 5,
      })
      if err != nil {
        log.Fatal(err)
      }
    
      for resPage := range resChan {
        if err := resPage.Err; err != nil {
          fmt.Printf("#%d err: %v", resPage.PageNumber, err)
          continue
        }
    
        fmt.Printf("#%d\n", resPage.PageNumber)
        feed := resPage.Feed
        fmt.Printf("\tTitle: %s\n\tID: %s\n\tAuthor: %#v\n\tUpdated: %#v\n",
    feed.Title, feed.ID, feed.Author, feed.Updated)
        for i, entry := range feed.Entry {
          fmt.Printf("\n\t\tEntry: #%d Title: %s ID: %s\n\t\tSummary:
    %s\n\t\tContent: %#v\n\t\tUpdated: %#v\n\t\tLinks: %#v\n",
    	i, entry.Title, entry.ID, entry.Summary.Body, entry.Content,
    entry.Updated, entry.Link,
          )
        }
        if resPage.PageNumber >= 2 {
          cancel()
        }
      }
    }
    ```
    
    * Advanced/complex search
    ```go
    func advancedSearch() {
      resChan, cancel, err := arxiv.Search(&arxiv.Query{
        Filters: []*arxiv.Filter{
          &arxiv.Filter{
    	Op: arxiv.OpOR,
    	Fields: []*arxiv.Field{
    	  {Title: "architecture"},
    	  {Category: arxiv.CSGameTheory},
    	  {Comment: "biological"},
    	},
          },
        },
        MaxPageNumber: 2,
      })
      if err != nil {
        log.Fatal(err)
      }
    
      for resPage := range resChan {
        if err := resPage.Err; err != nil {
          fmt.Printf("#%d err: %v", resPage.PageNumber, err)
          continue
        }
    
        fmt.Printf("#%d\n", resPage.PageNumber)
        feed := resPage.Feed
        fmt.Printf("\tTitle: %s\n\tID: %s\n\tAuthor: %#v\n\tUpdated: %#v\n",
    feed.Title, feed.ID, feed.Author, feed.Updated)
        for i, entry := range feed.Entry {
          fmt.Printf("\n\t\tEntry: #%d Title: %s ID: %s\n\t\tSummary:
    %s\n\t\tContent: %#v\n\t\tUpdated: %#v\n\t\tLinks: %#v\n",
    	i, entry.Title, entry.ID, entry.Summary.Body, entry.Content,
    entry.Updated, entry.Link,
          )
        }
        if resPage.PageNumber >= 2 {
          cancel()
        }
      }
    }
    ```
    odeke-em committed May 14, 2017
    Configuration menu
    Copy the full SHA
    2e194aa View commit details
    Browse the repository at this point in the history
Loading