Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #r "../../nuget_packages/FSharp.Data.2.3.0/lib/net40/FSharp.Data.dll"
- open FSharp.Data
- open System
- open System.IO
- open System.Net
- open System.Text
- open System.Collections.Specialized
- // почтовый адрес
- let email = ""
- let lab3 () =
- let bases = HtmlDocument.Load("https://github.com/search?utf8=%E2%9C%93&q=language%3AF%23&type=Repositories&ref=advsearch&l=F%23")
- // bases.Descendants ["h3"]
- // |> Seq.filter (fun x -> x.HasClass("repo-list-name"))
- // |> Seq.collect (fun (x:HtmlNode) -> x.Descendants ["a"])
- // |> Seq.map(fun x -> x.InnerText())
- // |> Seq.toList
- let list1 = Seq.map (fun (x:HtmlNode) -> x.InnerText()) ((Seq.collect (fun (x:HtmlNode) -> x.Descendants ["a"]) (Seq.filter (fun x -> x.HasClass("repo-list-name")) (bases.Descendants ["h3"]))))
- // printf "%A\n" list1
- let list2_n = (bases.Descendants ["relative-time"])
- printf "%A\n" list2_n
- let current_time = System.DateTime.Now
- let list2 = (Seq.map (fun (x: HtmlNode) -> current_time.Subtract(System.DateTime.Parse (x.AttributeValue "datetime")).Days / 30)) list2_n
- printf "%A" list2
- let result = Seq.zip list1 list2
- result
- Seq.sortBy (fun (x, y) -> y) result
- let href_next = (Seq.filter (fun (x:HtmlNode) -> x.HasClass("next_page")) (bases.Descendants ["a"]))
- let ref = "https://github.com" + if Seq.length href_next > 0 then (Seq.head href_next).AttributeValue("href") else ""
- printf "%A" href_next
- lab3()
- let main () =
- let values = new NameValueCollection()
- values.Add("email", email)
- values.Add("result", lab3().ToString())
- values.Add("content", File.ReadAllText(__SOURCE_DIRECTORY__ + @"/" + __SOURCE_FILE__))
- let client = new WebClient()
- let response = client.UploadValues(new Uri("http://91.239.143.158:13666/lab3"), values)
- let responseString = Text.Encoding.Default.GetString(response)
- printf "%A\n" responseString
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement