Created
January 6, 2022 03:24
-
-
Save AiziChen/762dc36825d68a319fcf2368963f4528 to your computer and use it in GitHub Desktop.
开源众包最新需求列表获取
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#lang racket/base | |
(require racket/set | |
net/http-easy | |
gregor) | |
(define (get-news type page) | |
(define rs | |
(get "https://zb.oschina.net/project/contractor-browse-project-and-reward" | |
#:params | |
`((applicationAreas . "") | |
(type . ,(number->string type)) | |
(sortBy . "30") | |
(currentTime . ,(~t (now) "YYYY-MM-DD+HH:mm:ss")) | |
(pageSize . "5") | |
(currentPage . ,(number->string page))))) | |
(if (= 200 (response-status-code rs)) | |
(let ([jdata (response-json rs)]) | |
(if (= (hash-ref jdata 'code -1) 0) | |
(hash-ref (hash-ref jdata 'data) 'data) | |
(hash-ref jdata 'message))) | |
'request-occurred-error)) | |
(let lp ([global-sets (set)]) | |
(define software-news (get-news 1 1)) | |
(define offer-news (get-news 2 1)) | |
(define software-set | |
(for/set ([item software-news]) | |
(define id (hash-ref item 'projectNo)) | |
(define name (hash-ref item 'name)) | |
(define cycle (hash-ref item 'cycle)) | |
(define cycle-name (hash-ref item 'cycleName)) | |
(define min-price (hash-ref item 'budgetMinByYuan)) | |
(define max-price (hash-ref item 'budgetMaxByYuan)) | |
(unless (set-member? global-sets id) | |
(printf "名称: ~a\n周期: ~a~a\n最小金额: ~a\n最大金额: ~a\n\n" name cycle cycle-name min-price max-price)) | |
id)) | |
(define offer-set | |
(for/set ([item software-news]) | |
(define id (hash-ref item 'projectNo)) | |
(define name (hash-ref item 'name)) | |
(define cycle (hash-ref item 'cycle)) | |
(define cycle-name (hash-ref item 'cycleName)) | |
(define min-price (hash-ref item 'budgetMinByYuan)) | |
(define max-price (hash-ref item 'budgetMaxByYuan)) | |
(unless (set-member? global-sets id) | |
(printf "名称: ~a\n周期: ~a~a\n最小金额: ~a\n最大金额: ~a\nid:~a\n" name cycle cycle-name min-price max-price id)) | |
id)) | |
(define new-sets (set-union software-set offer-set)) | |
(sleep 5) | |
(lp new-sets)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment