Доработка
This commit is contained in:
parent
450387d25a
commit
2b47ff8e24
24
README.md
24
README.md
@ -1,13 +1,21 @@
|
||||
# mtstep вер1.0
|
||||
|
||||
## Утилита для пропуска вопросов тренажера для сдачи тестов по аттестации лиц на право проектирования средств обеспечения пожарной безопасности зданий и сооружений, введённых в эксплуатацию с сайта: https://digital.mchs.gov.ru/fgpn/simulator
|
||||
|
||||
## Инструкция
|
||||
#### 1. Необходимо выбрать пункт `"марафон"`
|
||||
#### 2. Нажать на `"Начать тестирование"`
|
||||
#### 3. Из адресной строки: `"https://digital.mchs.gov.ru/testing/instance/75342faa-c77c-4811-abbe-ff8d8cec32a8"` выделить `"75342faa-c77c-4811-abbe-ff8d8cec32a8"`. Всегда индивидуальный при каждом начале тестирования и скопировать его в буфер обмена.
|
||||
#### 4. Запустить программу `"mtstep"`
|
||||
#### 5. Вставить в поле `"Необходимо ввести UUID сессии для начала загрузки"` скопированый в буфер обмена UUID (`"75342faa-c77c-4811-abbe-ff8d8cec32a8"`), у Вас будет другой необходимо ввести свой.
|
||||
#### 6. Далее необходимо указать номер с какого вопроса хотите начинать отвечать
|
||||
#### 7. После окончания работы утилиты, необходимо обновить страницу с тестами не закрывая ее.
|
||||
#### 8. После чего страница перегрузится с того номера вопроса который был указан.
|
||||
|
||||
#### 1. Необходимо выбрать пункт `"марафон"`
|
||||
|
||||
#### 2. Нажать на `"Начать тестирование"`
|
||||
|
||||
#### 3. Из адресной строки: `"https://digital.mchs.gov.ru/testing/instance/75342faa-c77c-4811-abbe-ff8d8cec32a8"` выделить `"75342faa-c77c-4811-abbe-ff8d8cec32a8"`. Всегда индивидуальный при каждом начале тестирования и скопировать его в буфер обмена.
|
||||
|
||||
#### 4. Запустить программу `"mtstep"`
|
||||
|
||||
#### 5. Вставить в поле `"Необходимо ввести UUID сессии"` скопированый в буфер обмена UUID (`"75342faa-c77c-4811-abbe-ff8d8cec32a8"`), у Вас будет другой необходимо ввести свой.
|
||||
|
||||
#### 6. Далее необходимо указать номер с какого вопроса хотите начинать отвечать
|
||||
|
||||
#### 7. После окончания работы утилиты, необходимо обновить страницу с тестами не закрывая ее.
|
||||
|
||||
#### 8. После чего страница перегрузится с того номера вопроса который был указан.
|
||||
|
@ -2,6 +2,7 @@ package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/google/uuid"
|
||||
"gitstore.ru/tolikproh/mchstest/internal/cnst"
|
||||
@ -10,24 +11,35 @@ import (
|
||||
)
|
||||
|
||||
func main() {
|
||||
fmt.Println("Загрузка вопросов для тестирования с сайта:", cnst.Url)
|
||||
fmt.Println("Загрузка вопросов для тестирования с сайта: https://digital.mchs.gov.ru/fgpn/simulator")
|
||||
uidMchs, err := uuid.Parse(util.InputTerminal("Необходимо ввести UUID сессии для начала загрузки"))
|
||||
if err != nil {
|
||||
fmt.Println("ОШИБКА: формат UUID не верный. Зазрузка отменена.")
|
||||
} else {
|
||||
var rN model.ReqNull
|
||||
var rA model.ReqAnswer
|
||||
body, _ := util.ReqestToSiteJSON(rN, cnst.Url, uidMchs)
|
||||
fmt.Println("[")
|
||||
for i := 0; i < 520; i++ {
|
||||
d := model.UnmarshalJSONToMTType(body)
|
||||
fmt.Print(model.MTTypeToJSON(d), ",\n")
|
||||
rA.Answer = d.ValidAnswer
|
||||
body, _ = util.ReqestToSiteJSON(rA, cnst.Url, uidMchs)
|
||||
}
|
||||
util.Check(err, "ОШИБКА: формат UUID не верный. Зазрузка отменена.")
|
||||
filename := util.InputTerminal("Введите имя файла для сохранения")
|
||||
util.Check(err, "")
|
||||
|
||||
var rN model.ReqNull
|
||||
var rA model.ReqAnswer
|
||||
f, err := os.Create(filename + ".json")
|
||||
util.Check(err, "")
|
||||
defer f.Close()
|
||||
|
||||
body, err := util.ReqestToSiteJSON(rN, cnst.Url, uidMchs)
|
||||
util.Check(err, "")
|
||||
_, err = f.WriteString("[\n")
|
||||
util.Check(err, "")
|
||||
fmt.Print("Выполняется сохранение")
|
||||
for i := 0; i < 520; i++ {
|
||||
d := model.UnmarshalJSONToMTType(body)
|
||||
fmt.Println(model.MTTypeToJSON(d))
|
||||
fmt.Println("]")
|
||||
_, err = f.WriteString(model.MTTypeToJSON(d) + ",\n")
|
||||
util.Check(err, "")
|
||||
rA.Answer = d.ValidAnswer
|
||||
body, err = util.ReqestToSiteJSON(rA, cnst.Url, uidMchs)
|
||||
util.Check(err, "")
|
||||
fmt.Print(".")
|
||||
}
|
||||
d := model.UnmarshalJSONToMTType(body)
|
||||
_, err = f.WriteString(model.MTTypeToJSON(d) + "\n]")
|
||||
util.Check(err, "")
|
||||
fmt.Println("\nСохранение списка вопросов завершено в файле", filename+".json")
|
||||
|
||||
}
|
||||
|
@ -2,30 +2,32 @@ package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
|
||||
"gitstore.ru/tolikproh/mchstest/internal/model"
|
||||
"gitstore.ru/tolikproh/mchstest/pkg/util"
|
||||
)
|
||||
|
||||
func main() {
|
||||
var inTest []model.MTType
|
||||
var outTest []model.MTParseT
|
||||
bs, err := ioutil.ReadFile("mchs_test.json")
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
os.Exit(1)
|
||||
}
|
||||
filename := util.InputTerminal("Введите имя файла базы данных сохранненой с сайта для парсинга (json)")
|
||||
|
||||
bs, err := ioutil.ReadFile(filename + ".json")
|
||||
util.Check(err, "")
|
||||
|
||||
err = json.Unmarshal(bs, &inTest)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
os.Exit(1)
|
||||
}
|
||||
util.Check(err, "")
|
||||
|
||||
for _, in := range inTest {
|
||||
outTest = append(outTest, in.Parse())
|
||||
}
|
||||
fmt.Println(model.SaveToExel("mchs_test.xlsx", &outTest))
|
||||
model.SaveToExel(filename+".xlsx", &outTest)
|
||||
|
||||
outTestJSON, err := json.Marshal(outTest)
|
||||
util.Check(err, "")
|
||||
|
||||
err = os.WriteFile(filename+"_parse.json", outTestJSON, 0644)
|
||||
util.Check(err, "")
|
||||
}
|
||||
|
@ -11,34 +11,29 @@ import (
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
fmt.Println("Утилита для пропуска подготовительных вопросов (марафон) к тестированию с сайта: https://digital.mchs.gov.ru/fgpn/simulator")
|
||||
uidMchs, err := uuid.Parse(util.InputTerminalStr("Необходимо ввести UUID сессии для начала загрузки"))
|
||||
if err != nil {
|
||||
fmt.Println("ОШИБКА: формат UUID не верный. Завершение работы.")
|
||||
uidMchs, err := uuid.Parse(util.InputTerminal("Необходимо ввести UUID сессии"))
|
||||
util.Check(err, "ОШИБКА: формат UUID не верный. Завершение работы.")
|
||||
|
||||
} else {
|
||||
numMchsStr := util.InputTerminalStr("Необходимо ввести номер вопроса (с 1 до 520)")
|
||||
numMchs, err := strconv.Atoi(numMchsStr)
|
||||
if err != nil {
|
||||
fmt.Println("ОШИБКА: необходимо ввести номер в диапазоне с 1 до 520. Завершение работы.")
|
||||
|
||||
}
|
||||
if numMchs <= 0 || numMchs > 520 {
|
||||
fmt.Println("ОШИБКА: не верный диапазон (должно быть с 1 до 520). Завершение работы.")
|
||||
} else {
|
||||
var rN model.ReqNull
|
||||
var rA model.ReqAnswer
|
||||
fmt.Print("Выполняется")
|
||||
body, _ := util.ReqestToSiteJSON(rN, cnst.Url, uidMchs)
|
||||
for i := 1; i < numMchs; i++ {
|
||||
d := model.UnmarshalJSONToMTType(body)
|
||||
fmt.Print(".")
|
||||
rA.Answer = d.ValidAnswer
|
||||
body, _ = util.ReqestToSiteJSON(rA, cnst.Url, uidMchs)
|
||||
}
|
||||
fmt.Println("\nРабота выполнена, пропущено", numMchs, "вопросов! Обновите страницу на сайте и продолжайте отвечать на подготовительные вопросы.")
|
||||
}
|
||||
numMchsStr := util.InputTerminal("Необходимо ввести номер вопроса (с 1 до 520)")
|
||||
numMchs, err := strconv.Atoi(numMchsStr)
|
||||
util.Check(err, "ОШИБКА: необходимо ввести номер в диапазоне с 1 до 520. Завершение работы.")
|
||||
|
||||
if numMchs <= 0 || numMchs > 520 {
|
||||
util.Check(nil, "ОШИБКА: не верный диапазон (должно быть с 1 до 520). Завершение работы.")
|
||||
}
|
||||
|
||||
var rN model.ReqNull
|
||||
var rA model.ReqAnswer
|
||||
fmt.Print("Выполняется")
|
||||
body, _ := util.ReqestToSiteJSON(rN, cnst.Url, uidMchs)
|
||||
for i := 1; i < numMchs; i++ {
|
||||
d := model.UnmarshalJSONToMTType(body)
|
||||
fmt.Print(".")
|
||||
rA.Answer = d.ValidAnswer
|
||||
body, err = util.ReqestToSiteJSON(rA, cnst.Url, uidMchs)
|
||||
util.Check(err, "")
|
||||
}
|
||||
fmt.Println("\nРабота выполнена, пропущено", numMchs, "вопросов! Обновите страницу на сайте и продолжайте отвечать на подготовительные вопросы.")
|
||||
}
|
||||
|
BIN
mchs_test.xlsx
BIN
mchs_test.xlsx
Binary file not shown.
BIN
mtstep.exe → mtparse
Normal file → Executable file
BIN
mtstep.exe → mtparse
Normal file → Executable file
Binary file not shown.
BIN
mtparse.exe
BIN
mtparse.exe
Binary file not shown.
14
pkg/util/errors.go
Normal file
14
pkg/util/errors.go
Normal file
@ -0,0 +1,14 @@
|
||||
package util
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
)
|
||||
|
||||
func Check(e error, msg string) {
|
||||
if e != nil {
|
||||
fmt.Println(msg)
|
||||
fmt.Println(e)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
BIN
test_886.xlsx
Executable file
BIN
test_886.xlsx
Executable file
Binary file not shown.
1
test_886_parse.json
Normal file
1
test_886_parse.json
Normal file
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user