gofmt: main.go

This commit is contained in:
Muhammad Nauman Raza 2025-01-25 23:58:00 +00:00
parent 7fba45c0a8
commit 5aa133b6af
Signed by: devraza
GPG key ID: 91EAD6081011574B

View file

@ -1,102 +1,102 @@
package main package main
import ( import (
"encoding/json" "encoding/json"
"path/filepath" "fmt"
"fmt" "io"
"strings" "io/fs"
"io/fs" "log"
"io" "net/http"
"os" "os"
"log" "path/filepath"
"net/http" "strings"
) )
type Response struct { type Response struct {
Status string `json:"status"` Status string `json:"status"`
Result Result `json:"result"` Result Result `json:"result"`
} }
type Result struct { type Result struct {
Problems []Problem `json:"problems"` Problems []Problem `json:"problems"`
ProblemStatistics []ProblemStatistics `json:"problemStatistics"` ProblemStatistics []ProblemStatistics `json:"problemStatistics"`
} }
type Problem struct { type Problem struct {
ContestId int `json:"contestId"` ContestId int `json:"contestId"`
Name string `json:"name"` Name string `json:"name"`
Index string `json:"index"` Index string `json:"index"`
Type string `json:"type"` Type string `json:"type"`
Points float32 `json:"points"` Points float32 `json:"points"`
Rating int `json:"rating"` Rating int `json:"rating"`
SolvedCount int `json:"solvedCount"` SolvedCount int `json:"solvedCount"`
} }
type ProblemStatistics struct { type ProblemStatistics struct {
ContestId int `json:"contestId"` ContestId int `json:"contestId"`
Index string `json:"index"` Index string `json:"index"`
SolvedCount int `json:"solvedCount"` SolvedCount int `json:"solvedCount"`
} }
var files []string var files []string
func visit(path string, d fs.DirEntry, err error) error { func visit(path string, d fs.DirEntry, err error) error {
if err != nil { if err != nil {
return err return err
} }
if d.IsDir() && d.Name() == "target" { if d.IsDir() && d.Name() == "target" {
return filepath.SkipDir return filepath.SkipDir
} }
files = append(files, strings.TrimSuffix(d.Name(), filepath.Ext(d.Name()))) files = append(files, strings.TrimSuffix(d.Name(), filepath.Ext(d.Name())))
return nil return nil
} }
func main() { func main() {
resp, err := http.Get("https://codeforces.com/api/problemset.problems") resp, err := http.Get("https://codeforces.com/api/problemset.problems")
if err != nil { if err != nil {
log.Fatalln(err) log.Fatalln(err)
} }
defer resp.Body.Close() defer resp.Body.Close()
body, err := io.ReadAll(resp.Body) body, err := io.ReadAll(resp.Body)
if err != nil { if err != nil {
log.Fatalln(err) log.Fatalln(err)
} }
var response Response var response Response
if err := json.Unmarshal(body, &response); err != nil { if err := json.Unmarshal(body, &response); err != nil {
log.Fatalln(err) log.Fatalln(err)
} }
err = filepath.WalkDir("../solutions", visit) err = filepath.WalkDir("../solutions", visit)
var solved []string var solved []string
for _, p := range response.Result.Problems { for _, p := range response.Result.Problems {
for _, i := range files { for _, i := range files {
if i == fmt.Sprintf("%v%v", p.ContestId, p.Index) { if i == fmt.Sprintf("%v%v", p.ContestId, p.Index) {
text := fmt.Sprintf("- [%v%v %v](https://codeforces.com/problemset/problem/%v/%v)", p.ContestId, p.Index, p.Name, p.ContestId, p.Index) text := fmt.Sprintf("- [%v%v %v](https://codeforces.com/problemset/problem/%v/%v)", p.ContestId, p.Index, p.Name, p.ContestId, p.Index)
solved = append(solved, text) solved = append(solved, text)
continue continue
} }
} }
} }
file, err := os.Create("../README.md") file, err := os.Create("../README.md")
if err != nil { if err != nil {
fmt.Println("Error creating file:", err) fmt.Println("Error creating file:", err)
return return
} }
defer file.Close() defer file.Close()
file.WriteString("# Code Forces Solutions\nMy set of solutions to the problems on Code Forces.\n## Solutions\n") file.WriteString("# Code Forces Solutions\nMy set of solutions to the problems on Code Forces.\n## Solutions\n")
for _, line := range solved { for _, line := range solved {
_, err := file.WriteString(line + "\n") _, err := file.WriteString(line + "\n")
if err != nil { if err != nil {
fmt.Println("Error writing to file:", err) fmt.Println("Error writing to file:", err)
return return
} }
} }
} }