Доработка
This commit is contained in:
@@ -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. После чего страница перегрузится с того номера вопроса который был указан.
|
||||
|
||||
+28
-16
@@ -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")
|
||||
|
||||
}
|
||||
|
||||
+13
-11
@@ -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, "")
|
||||
}
|
||||
|
||||
+20
-25
@@ -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, "вопросов! Обновите страницу на сайте и продолжайте отвечать на подготовительные вопросы.")
|
||||
}
|
||||
|
||||
Binary file not shown.
Regular → Executable
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -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)
|
||||
}
|
||||
}
|
||||
+521
-521
File diff suppressed because it is too large
Load Diff
Executable
BIN
Binary file not shown.
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user