Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- open System
- open System.IO
- open FSharp.Data
- type NPMPackage = JsonProvider<"d:\client.json">
- let asyncGetPackage name =
- let url = "https://api.npmjs.org/downloads/point/last-month/" + name
- NPMPackage.AsyncLoad(url)
- let packagesAync = seq {
- for line in File.ReadLines("d:/modules.txt") do
- let name = line.Split([|' ';'\t'|]).[0]
- yield async {
- try
- return! asyncGetPackage name
- with _ ->
- return new NPMPackage.Root(0, DateTime.Now, DateTime.Now, name)
- }
- }
- let packages =
- Async.Parallel packagesAync
- |> Async.RunSynchronously
- packages
- |> Seq.sortByDescending (fun p -> p.Downloads)
- |> Seq.take(100)
- |> Seq.iter (fun p -> printfn "Downloads: %A \t\t Count: %A" p.Package p.Downloads)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement