Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #r "../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 firstPart = "https://github.com/search?l=F%23&p="
- let secondPart = "&q=language%3AF%23&ref=advsearch&type=Repositories&utf8=✓"
- let lab3 () =
- let getListFromPage (pageNumber:int) =
- let bases = HtmlDocument.Load(firstPart + pageNumber.ToString() + secondPart)
- // 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
- Seq.toList result
- // let pages = Seq.init 10 (fun x -> x + 1)
- let pages = [1..4]
- let result = List.collect (fun x -> getListFromPage x) pages
- 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 lol = Seq.init 10 (fun x -> x + 1)
- lol
- 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