commit 87d180eab168b5e3471055289e77f85fb58231aa Author: hhu67 Date: Fri Jun 26 00:33:10 2026 +0300 minorr changes diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8b174a0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.vscode +.env +.idea +go_build_my_app diff --git a/README.md b/README.md new file mode 100644 index 0000000..ba99c01 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +)(*&^%$%^&*()(*&^%$%^&*()(*&^%$%^&*()(*&^%$#$%^&*)))) \ No newline at end of file diff --git a/asm/.gitignore b/asm/.gitignore new file mode 100644 index 0000000..f1b900e --- /dev/null +++ b/asm/.gitignore @@ -0,0 +1 @@ +l1.o diff --git a/asm/README.md b/asm/README.md new file mode 100644 index 0000000..e1b7fe8 --- /dev/null +++ b/asm/README.md @@ -0,0 +1 @@ +Ой нееее зря я сюда полез diff --git a/asm/l1.asm b/asm/l1.asm new file mode 100644 index 0000000..ab36994 --- /dev/null +++ b/asm/l1.asm @@ -0,0 +1,17 @@ +section .data + msg db 'Hello, World!' + len equ $ - msg + +section .text + global _start + +_start: + mov rax, 1 + mov rdi, 1 + mov rsi, msg + mov rdx, len + syscall + + mov rax, 60 + xor rdi, rdi + syscall diff --git a/asm/output/l1 b/asm/output/l1 new file mode 100755 index 0000000..6fea15c Binary files /dev/null and b/asm/output/l1 differ diff --git a/c++/.gitignore b/c++/.gitignore new file mode 100644 index 0000000..6f27dc3 --- /dev/null +++ b/c++/.gitignore @@ -0,0 +1,2 @@ +.vscode +.env diff --git a/c++/l1.cpp b/c++/l1.cpp new file mode 100644 index 0000000..1de2c43 --- /dev/null +++ b/c++/l1.cpp @@ -0,0 +1,5 @@ +#include +int main() { + std::cout << "hello" << std::endl; + return 0; +} diff --git a/c++/l2.cpp b/c++/l2.cpp new file mode 100644 index 0000000..7e85e36 --- /dev/null +++ b/c++/l2.cpp @@ -0,0 +1,11 @@ +#include +int main() { + int x; + std::cout << "Число " << std::endl; + std::cin >> x; + int x2; + std::cout << "Второе число " << std::endl; + std::cin >> x2; + int sum = x+x2; + std::cout << x << "+" << x2 << "=" << sum << std::endl; +} diff --git a/c++/l3.cpp b/c++/l3.cpp new file mode 100644 index 0000000..303267c --- /dev/null +++ b/c++/l3.cpp @@ -0,0 +1,12 @@ +#include +int main() { + int x; + std::cout << "Число" << std::endl; + std::cin >> x; + if(x > 10) { + std::cout << "Число больше 10" << std::endl; + } + else { + std::cout << "Число меньше 10" << std::endl; + } +} diff --git a/c++/l4.cpp b/c++/l4.cpp new file mode 100644 index 0000000..6fe1f2f --- /dev/null +++ b/c++/l4.cpp @@ -0,0 +1,8 @@ +#include +#include +int main() { + std::string x; + std::cout << "Кто сергей" << std::endl; + std::getline(std::cin, x); + std::cout << "сергей " << x << std::endl; +} diff --git a/c++/l5.cpp b/c++/l5.cpp new file mode 100644 index 0000000..f413413 --- /dev/null +++ b/c++/l5.cpp @@ -0,0 +1,55 @@ +#include +#include + +int polz(void) { + while(1) { + std::string pol; + std::cout << "Знак" << std::endl; + std::cin >> pol; + double x1; + std::cout << "Первое число" << std::endl; + std::cin >> x1; + double x2; + std::cout << "Второе число" << std::endl; + std::cin >> x2; + if(pol == "+") { + std::cout << x1 << pol << x2 << "=" << x1+x2 << std::endl; + } + else if(pol == "-") { + std::cout << x1 << pol << x2 << "=" << x1-x2 << std::endl; + } + else if(pol == "exit") { + break; + } + else if(pol == "*") { + std::cout << x1 << pol << x2 << "=" << x1*x2 << std::endl; + } + else if(pol == "/") { + std::cout << x1 << pol << x2 << "=" << x1/x2 << std::endl; + } + else { + std::cout << "Неверный знак" << std::endl; + break; + } + } + return 1; +} + +int main() { + while(1) { + std::cout << "1. Начать\n2. Закончить" << std::endl; + int pol1; + std::cout << "Введите число" << std::endl; + std::cin >> pol1; + if(pol1 == 1) { + polz(); + } + else if(pol1 == 2) { + return 0; + } + else { + std::cout << "Введите верное число" << std::endl; + } + } + return 0; +} diff --git a/c++/l6.cpp b/c++/l6.cpp new file mode 100644 index 0000000..5e1d51d --- /dev/null +++ b/c++/l6.cpp @@ -0,0 +1,43 @@ +#include +#include +#include + +int all() { + std::random_device rd; + std::mt19937 gen(rd()); + std::uniform_int_distribution distrib(1, 100); + int i = 0; + while(i <= 3) { + int x1 = distrib(gen); + int x2 = distrib(gen); + int x3 = x1+x2; + int pol; + std::cout << x1 << "+" << x2 << "=?" << std::endl; + std::cin >> pol; + if(pol == x3) { + std::cout << "Верно!" << std::endl; + std::cout << x1 << "+" << x2 << "=" << x3 << std::endl; + } + else { + std::cout << "Не верно!" << std::endl; + std::cout << x1 << "+" << x2 << "=" << x3 << std::endl; + return 0; + } + } + return 1; +} + +int main() { + while(1) { + std::string polz; + std::cout << "1. Начать\n2. Закончить" << std::endl; + std::cin >> polz; + if(polz == "1") { + all(); + } + else if(polz == "2") { + return 0; + } + } + return 0; +} diff --git a/c++/output/l1 b/c++/output/l1 new file mode 100755 index 0000000..b0afefa Binary files /dev/null and b/c++/output/l1 differ diff --git a/c++/output/l2 b/c++/output/l2 new file mode 100755 index 0000000..d3f75e8 Binary files /dev/null and b/c++/output/l2 differ diff --git a/c++/output/l3 b/c++/output/l3 new file mode 100755 index 0000000..50503df Binary files /dev/null and b/c++/output/l3 differ diff --git a/c++/output/l4 b/c++/output/l4 new file mode 100755 index 0000000..0e8cf7f Binary files /dev/null and b/c++/output/l4 differ diff --git a/c++/output/l5 b/c++/output/l5 new file mode 100755 index 0000000..bc5d3b6 Binary files /dev/null and b/c++/output/l5 differ diff --git a/c++/output/l6 b/c++/output/l6 new file mode 100755 index 0000000..8179d8c Binary files /dev/null and b/c++/output/l6 differ diff --git a/c/.gitignore b/c/.gitignore new file mode 100644 index 0000000..f372467 --- /dev/null +++ b/c/.gitignore @@ -0,0 +1,3 @@ +.vscode +.env +output \ No newline at end of file diff --git a/c/l1.c b/c/l1.c new file mode 100644 index 0000000..fc0538a --- /dev/null +++ b/c/l1.c @@ -0,0 +1,5 @@ +#include +int main() { + printf("hello\n"); + return 0; +} diff --git a/c/l10.c b/c/l10.c new file mode 100644 index 0000000..d76227e --- /dev/null +++ b/c/l10.c @@ -0,0 +1,16 @@ +#include +#include + +int main() { + char str[100]; + printf("Enter phrase "); + scanf("%s", str); + int len = strlen(str); + if(len > 50) { + printf("too long"); + return 0; + } + for(int i = 0; i < len; i++) { + printf("%c\n", str[i]); + } +} \ No newline at end of file diff --git a/c/l11.c b/c/l11.c new file mode 100644 index 0000000..72c8460 --- /dev/null +++ b/c/l11.c @@ -0,0 +1,51 @@ +#include +#include +#include + +int main() { + int x = 0; + char str[100]; + printf("Enter word "); + scanf("%s", str); + int len = strlen(str); + for(int i = 0; i < len; i++) { + if(str[i] == 'a') { + x++; + } + else if(str[i] == 'e') { + x++; + } + else if(str[i] == 'i') { + x++; + } + else if(str[i] == 'o') { + x++; + } + else if(str[i] == 'u') { + x++; + } + else if(str[i] == 'y') { + x++; + } + else if(str[i] == 'A') { + x++; + } + else if(str[i] == 'E') { + x++; + } + else if(str[i] == 'I') { + x++; + } + else if(str[i] == 'O') { + x++; + } + else if(str[i] == 'U') { + x++; + } + else if(str[i] == 'Y') { + x++; + } + } + printf("Vowels: %d\n", x); + sleep(2); +} \ No newline at end of file diff --git a/c/l12.c b/c/l12.c new file mode 100644 index 0000000..c7ac06f --- /dev/null +++ b/c/l12.c @@ -0,0 +1,11 @@ +#include + +int main() { + char x[100] = "False"; + while(1) { + printf("%s\n", x); + if(x == "True") { + return 0; + } + } +} \ No newline at end of file diff --git a/c/l13.c b/c/l13.c new file mode 100644 index 0000000..4ab9927 --- /dev/null +++ b/c/l13.c @@ -0,0 +1,26 @@ +#include +#include +#include + +int main() { + char pol[100]; + printf("Enter word "); + scanf("%s", pol); + for(int i = 0; pol[i]; i++) { + pol[i] = tolower(pol[i]); + } + char x[100]; + strcpy(x, pol); + int len = strlen(x); + for(int i = 0; i < len / 2; i++) { + char temp = x[i]; + x[i] = x[len - 1 - i]; + x[len - 1 - i] = temp; + } + if(strcmp(pol, x) == 0) { + printf("equal\n"); + } + else { + printf("not equal\n"); + } +} \ No newline at end of file diff --git a/c/l14.c b/c/l14.c new file mode 100644 index 0000000..61b66bf --- /dev/null +++ b/c/l14.c @@ -0,0 +1,19 @@ +#include + +int main() { + int num[5]; + for (int i = 0; i < 5; i++) { + printf("Enter number "); + scanf("%d", &num[i]); + } + + int max = num[0]; + for (int i = 1; i < 5; i++) { + if (num[i] > max) { + max = num[i]; + } + } + + printf("Maximum number: %d\n", max); + return 0; +} \ No newline at end of file diff --git a/c/l2.c b/c/l2.c new file mode 100644 index 0000000..9e81271 --- /dev/null +++ b/c/l2.c @@ -0,0 +1,7 @@ +#include +int main() { + char x[100]; + printf("Who Sergay "); + scanf("%99s", x); + printf("Sergay: %s\n", x); +} diff --git a/c/l3.c b/c/l3.c new file mode 100644 index 0000000..8f714a0 --- /dev/null +++ b/c/l3.c @@ -0,0 +1,11 @@ +#include +int main() { + int pol1; + printf("First number "); + scanf("%d", &pol1); + int pol2; + printf("Second number "); + scanf("%d", &pol2); + int x = pol1*pol2; + printf("Square: %d\n", x); +} \ No newline at end of file diff --git a/c/l4.c b/c/l4.c new file mode 100644 index 0000000..31a413e --- /dev/null +++ b/c/l4.c @@ -0,0 +1,33 @@ +#include +#include +#include + +int main() { + srand(time(NULL)); + int x = rand() % 11; + int s = 0; + while(1) { + int pol; + printf("Number "); + scanf("%d", &pol); + if(pol == x) { + printf("the number is guessed\n"); + break; + } + else { + printf("the number is not guessed\n"); + if(pol > x) { + printf("less\n"); + } + else { + printf("more\n"); + } + s++; + if(s == 3) { + printf("Game over\n"); + break; + } + } + } + return 0; +} \ No newline at end of file diff --git a/c/l5.c b/c/l5.c new file mode 100644 index 0000000..d371c1f --- /dev/null +++ b/c/l5.c @@ -0,0 +1,28 @@ +#include + +int main() { + int pol; + printf("Enter number "); + scanf("%d", &pol); + if(pol > 9) { + printf("Error: number must be from 1 to 9\n"); + return 0; + } + else if(pol < 1) { + printf("Error: number must be from 1 to 9\n"); + return 0; + } + int x = 1; + int s = 0; + while(1) { + printf("%d * %d = %d\n", pol, x, pol*x); + x++; + s++; + if(s < 10) { + continue; + } + else { + break; + } + } +} \ No newline at end of file diff --git a/c/l6.c b/c/l6.c new file mode 100644 index 0000000..145fd95 --- /dev/null +++ b/c/l6.c @@ -0,0 +1,12 @@ +#include + +int main() { + int pol; + printf("Enter 3 number "); + scanf("%d", &pol); + int x1 = pol % 10; + int x2 = (pol / 10) % 10; + int x3 = ((pol / 10) / 10) % 10; + int sum = x1+x2+x3; + printf("%d\n", sum); +} \ No newline at end of file diff --git a/c/l7.c b/c/l7.c new file mode 100644 index 0000000..cf7b8bb --- /dev/null +++ b/c/l7.c @@ -0,0 +1,21 @@ +#include +#include + +int main() { + int pol; + printf("Enter number: "); + if (scanf("%d", &pol) != 1); + + char st[100] = ""; + int x = 0; + + if (pol >= 100) pol = 99; + + while(x < pol) { + int len = strlen(st); + st[len] = '*'; + st[len + 1] = '\0'; + x++; + printf("%s\n", st); + } +} \ No newline at end of file diff --git a/c/l8.c b/c/l8.c new file mode 100644 index 0000000..9490ae4 --- /dev/null +++ b/c/l8.c @@ -0,0 +1,21 @@ +#include +#include + +int main() { + char pol[100]; + printf("Enter word "); + scanf("%s", pol); + char x[100] = "hello"; + x[0] = 'H'; + x[1] = 'i'; + strcpy(&x[2], &x[5]); + strcat(x, "!"); + if(strcmp(x, pol) == 0) { + printf("equal\n"); + } + else { + printf("not equal\n"); + } + int len = strlen(x), len2 = strlen(pol); + printf("Symbol: %d\n%s\nSymbol your word: %d", len, x, len2); +} \ No newline at end of file diff --git a/c/l9.c b/c/l9.c new file mode 100644 index 0000000..240f1fe --- /dev/null +++ b/c/l9.c @@ -0,0 +1,16 @@ +#include +#include + +int main() { + char pol[100]; + printf("Enter word "); + scanf("%s", pol); + int len = strlen(pol); + for(int i = 0; i < len / 2; i++) { + char temp = pol[i]; + pol[i] = pol[len - 1 - i]; + pol[len - 1 - i] = temp; + } + printf("%s\n", pol); + return 0; +} \ No newline at end of file diff --git a/git.sh b/git.sh new file mode 100644 index 0000000..7b8c680 --- /dev/null +++ b/git.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +echo "name for commit: " +read com +git add . +git commit -m "$com" +declare -A remotes=( + ["github"]="git@github.com:hhu67/my.git" + ["forgejo"]="forgejo@git.vlv-s.site:hhu67/my.git" + ["berg"]="ssh://git@codeberg.org/hhu67/my.git" + ["gitea.org"]="git@gitea.com:hhu67/my.git" +) +manage_remote() { + local name=$1 + local url=$2 + + if git remote | grep -q "^${name}$"; then + echo "Remote '$name' уже существует, пропускаю добавление." + else + echo "Добавляю remote: $name" + git remote add "$name" "$url" + fi +} +for name in "${!remotes[@]}"; do + manage_remote "$name" "${remotes[$name]}" + echo "Пушу в $name..." + git push "$name" main +done diff --git a/go/.gitignore b/go/.gitignore new file mode 100644 index 0000000..a1ded48 --- /dev/null +++ b/go/.gitignore @@ -0,0 +1,4 @@ +.vscode +.env +.*.go.swp +*.so \ No newline at end of file diff --git a/go/README.md b/go/README.md new file mode 100644 index 0000000..4395da2 --- /dev/null +++ b/go/README.md @@ -0,0 +1,38 @@ +strings: + .ToLower(x) - для одного нижнего регистра + .ToUpper(x) - для одного высокого регистра + .HasSuffix(x, "aaa") - для проверки оканчивается ли x на ааа(true/false) + .HasPrefix(x, "aaa") - для проверки начинается ли x на aaa(true/false) + .Contains(x, "aaa") - для проверки существует ли вообще aaa в x(true/false) + .ContainsAny(x, "abc") - для проверки есть ли в x буквы a b c(true/false) + .Count(x, "aaa") - для продсчета сколько в x aaa + .EqualFold(x, x2) - сравнивает переменные без учета их регистра +slices: + x := []int{} - создание среза + x := make([]int, a, b) - создание среза с параметром, a - длинна, b - емкость + x = append(x, a) - для добавления элемента в срез + element := x[index] - для доступа к конкретному элементу, index начинается с 0 + x[index] = element - для изменения элемента среза + x = append(x[:index], x[index2]...) - для удаления элемента среза + lenx = len(x) = для подсчета позиций в срезе + .Compare(x1, x2) - для проверки равности + .Sort(x) - для сортировки в порядке возрастания +sort: + .ТипПеременной(x) - для сортировки среза по возрастанию + .SearchТипПеременной(x, 1) - для нахождения индекса числа в срезе + sort.Sort(sort.Reverse(sort.ТипПеременной(x))) - для сортировки по убыванию +reflect: + reflect.DeepEqual(x1, x2) - для сравнения срезов +os: + .Exit(0/1) - для принудительного завершения программы + .ReadFile(x.json) - для получения того что находится в файле x.json +map: + map[ТипКлюча]ТипЗначения{} - для объчвления map + delete(x, "Ключ") - для удаления элемента из map + x1[x2] = x3 - для добавления элемента в map + value, ok := x1[x2] - для проверки существования элемнта в map, ok = true/false, value = значению x1[x2] +encoding/json: + .Unmarshal(x1, &x2) - для записи в x2 информации формата json, той сырой информации из x1, теперь можно обращаться к ней по x2.ИмяИзСтруктуры +github.com/joho/godotenv: + godotenv.Load() - для инита .env файла + os.Getenv("api") - для записи в переменную значения из env файла с ключом api \ No newline at end of file diff --git a/go/go.mod b/go/go.mod new file mode 100644 index 0000000..4f09327 --- /dev/null +++ b/go/go.mod @@ -0,0 +1,13 @@ +module my-app + +go 1.24.0 + +require ( + github.com/eclipse/paho.mqtt.golang v1.5.1 // indirect + github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1 // indirect + github.com/gorilla/websocket v1.5.3 // indirect + github.com/joho/godotenv v1.5.1 // indirect + github.com/mattn/go-sqlite3 v1.14.46 // indirect + golang.org/x/net v0.44.0 // indirect + golang.org/x/sync v0.17.0 // indirect +) diff --git a/go/go.sum b/go/go.sum new file mode 100644 index 0000000..001640d --- /dev/null +++ b/go/go.sum @@ -0,0 +1,14 @@ +github.com/eclipse/paho.mqtt.golang v1.5.1 h1:/VSOv3oDLlpqR2Epjn1Q7b2bSTplJIeV2ISgCl2W7nE= +github.com/eclipse/paho.mqtt.golang v1.5.1/go.mod h1:1/yJCneuyOoCOzKSsOTUc0AJfpsItBGWvYpBLimhArU= +github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1 h1:wG8n/XJQ07TmjbITcGiUaOtXxdrINDz1b0J1w0SzqDc= +github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1/go.mod h1:A2S0CWkNylc2phvKXWBBdD3K0iGnDBGbzRpISP2zBl8= +github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= +github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= +github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= +github.com/mattn/go-sqlite3 v1.14.46 h1:ZfaNcYO/CGNMRxkN1vvG9qf+Y+uvXfgT9a6MlEw+HmU= +github.com/mattn/go-sqlite3 v1.14.46/go.mod h1:6JTjA44L93a0QCyJef5YvlPoKXntQPjzWv5gtm9sB6w= +golang.org/x/net v0.44.0 h1:evd8IRDyfNBMBTTY5XRF1vaZlD+EmWx6x8PkhR04H/I= +golang.org/x/net v0.44.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY= +golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= +golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= diff --git a/go/l1.go b/go/l1.go new file mode 100644 index 0000000..6c4979d --- /dev/null +++ b/go/l1.go @@ -0,0 +1,14 @@ +package main + +import ( + "bufio" + "fmt" + "os" +) + +func main() { + read := bufio.NewReader(os.Stdin) + fmt.Println("Your name ") + name, _ := read.ReadString('\n') + fmt.Println("Your name", name) +} diff --git a/go/l10.go b/go/l10.go new file mode 100644 index 0000000..d91021d --- /dev/null +++ b/go/l10.go @@ -0,0 +1,60 @@ +package main + +import ( + "fmt" + "strings" + "slices" + "unicode" +) + +func polz() (string, string) { + fmt.Println("Введите первое") + var pol1 string + fmt.Scanln(&pol1) + fmt.Println("Введите второе") + var pol2 string + fmt.Scanln(&pol2) + return pol1, pol2 +} + +func vowel(vow string) int { + tolower := strings.ToLower(vow) + wovel := 0 + for _, r := range tolower { + if strings.ContainsRune("aeiyou", r) { + wovel++ + } + } + return wovel +} + +func recovery(rec string) string { + runes := []rune(rec) + for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 { + runes[i], runes[j] = runes[j], runes[i] + } + return string(runes) +} + +func anag(rec string, recc string) bool { + runes := []rune(strings.ToLower(rec)) + runi := []rune(strings.ToLower(recc)) + slices.Sort(runes) + slices.Sort(runi) + return slices.Compare(runes, runi) == 0 +} + +func format(pof1 string) string { + runes := []rune(pof1) + runes[0] = unicode.ToUpper(runes[0]) + return string(runes) +} + +func main() { + po1, po2 := polz() + fmt.Println("Вот колличество гласных в первом", vowel(po1)) + fmt.Println("Вот слова", po1, po2) + fmt.Println("Вот перевернутое первое слово", recovery(po1)) + fmt.Println(anag(po1, po2)) + fmt.Println(format(po1)) +} \ No newline at end of file diff --git a/go/l11.go b/go/l11.go new file mode 100644 index 0000000..ceceb21 --- /dev/null +++ b/go/l11.go @@ -0,0 +1,38 @@ +package main + +import ( + "fmt" + "os" +) + +type Person struct { + name string + age int +} + +func polz() (string, int) { + fmt.Println("Введите ваше имя") + var pol1 string + fmt.Scanln(&pol1) + if pol1 == "Сергей" || pol1 == "сергей" { + fmt.Println("Такая херь здесь не нужна") + os.Exit(0) + } + fmt.Println("Введите ваш возраст") + var pol2 int + fmt.Scan(&pol2) + return pol1, pol2 +} + +func main() { + pol1, pol2 := polz() + pers := Person{ + name: pol1, + age: pol2, + } + if pers.age == 200 { + fmt.Println("Ваше имя:", pers.name, "\n"+"Ты", pers.age) + } else { + fmt.Println("Ваше имя:", pers.name, "\n"+"Твой возраст:", pers.age) + } +} \ No newline at end of file diff --git a/go/l12.go b/go/l12.go new file mode 100644 index 0000000..3298d3d --- /dev/null +++ b/go/l12.go @@ -0,0 +1,26 @@ +package main + +import ( + "fmt" +) + +func main() { + mape := map[int]string{ + 1: "sergey", + 2: "sergay", + } + fmt.Println("Введите свое имя") + var pol string + fmt.Scanln(&pol) + mape[len(mape)+1] = pol + fmt.Println("Ваше имя:",mape[len(mape)]) + fmt.Println("Введите число значение каторого хотите увидеть") + var i int + fmt.Scan(&i) + value, ok := mape[i] + if ok { + fmt.Println(value) + } else { + fmt.Println("значение",i,"не найдено, значение поиска:",ok) + } +} \ No newline at end of file diff --git a/go/l13.go b/go/l13.go new file mode 100644 index 0000000..90cdad8 --- /dev/null +++ b/go/l13.go @@ -0,0 +1,29 @@ +package main + +import ( + "fmt" + "encoding/json" + "log" + "os" +) + +type Json struct{ + Name string `json:"name"` + Version int `json:"ver"` + Active bool `json:"act"` +} + +func main() { + jsonn, err := os.ReadFile("l13.json") + if err != nil { + log.Fatalf("Ошибка при чтении файла: %v", err) + } + var conf Json + err = json.Unmarshal(jsonn, &conf) + if err != nil { + log.Fatalf("Ошибка при чтении файла: %v", err) + } + if conf.Active { + fmt.Println("Статус:", conf.Active) + } +} diff --git a/go/l13.json b/go/l13.json new file mode 100644 index 0000000..9e0bf2f --- /dev/null +++ b/go/l13.json @@ -0,0 +1,5 @@ +{ + "name": "program", + "age": 2288, + "act": true +} diff --git a/go/l14.go b/go/l14.go new file mode 100644 index 0000000..6b48445 --- /dev/null +++ b/go/l14.go @@ -0,0 +1,44 @@ +package main + +import ( + "fmt" + "log" + "encoding/json" + "net/http" + "net/url" + "github.com/joho/godotenv" + "os" +) + +type IPR struct{ + IP string `json:"origin"` +} + +func main() { + err := godotenv.Load() + if err != nil { + log.Println(err) + } + proxy := os.Getenv("proxy") + proxyURL, err := url.Parse(proxy) + if err != nil { + log.Fatalln(err) + } + tran := &http.Transport{ + Proxy: http.ProxyURL(proxyURL), + } + myclient := &http.Client { + Transport: tran, + } + url, err := myclient.Get("https://httpbin.org/ip") + if err != nil { + log.Fatalf("%v\n", err) + } + defer url.Body.Close() + var ipresp IPR + err = json.NewDecoder(url.Body).Decode(&ipresp) + if err != nil { + log.Fatalf("%v\n", err) + } + fmt.Println(ipresp.IP) +} diff --git a/go/l15.go b/go/l15.go new file mode 100644 index 0000000..46d3296 --- /dev/null +++ b/go/l15.go @@ -0,0 +1,78 @@ +package main + +import ( + "fmt" + "net/http" + "log" + "time" + "encoding/json" + "github.com/joho/godotenv" + "os" + "net/url" + "crypto/tls" +) +type MyIpData struct{ + YourIP string `json:"query"` + City string `json:"city"` + Country string `json:"country"` + ISP string `json:"isp"` +} +type UA struct{ + UserAgent string `json:"user-agent"` +} + +func proxy() (bool, string) { + err := godotenv.Load() + if err != nil { + return false, "" + } + proxy := os.Getenv("proxy") + if proxy == "" { + return false, "" + } + return true, proxy +} + +func main() { + transport := &http.Transport{ + TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, + } + er, proxis := proxy() + if er { + proxyURL, err := url.Parse(proxis) + if err != nil { + return + } + transport.Proxy = http.ProxyURL(proxyURL) + } + fmt.Println("Введите какой хотите user-agent") + var polz string + fmt.Scanln(&polz) + client := &http.Client{ + Timeout: 20 * time.Second, + Transport: transport, + } + req, err := http.NewRequest("GET", "https://httpbin.org/user-agent", nil) + if err != nil { + log.Fatalf("%v\n", err) + } + req.Header.Set("User-Agent", polz) + resp, err := client.Do(req) + if err != nil { + log.Fatalf("%v\n", err) + } + req2, err := http.NewRequest("GET", "http://ip-api.com/json", nil) + if err != nil { + log.Fatalf("%v\n", err) + } + resp2, err := client.Do(req2) + defer resp.Body.Close() + var file UA + err = json.NewDecoder(resp.Body).Decode(&file) + if err != nil { + log.Fatalf("%v\n", err) + } + var data MyIpData + err = json.NewDecoder(resp2.Body).Decode(&data) + fmt.Printf("Ваш IP: %s\nВаш город по IP: %s\nВаша страна по IP: %s\nВаш провайдер по IP: %s\nВаш User-Agent: %s\n", data.YourIP, data.City, data.Country, data.ISP, file.UserAgent) +} \ No newline at end of file diff --git a/go/l16.go b/go/l16.go new file mode 100644 index 0000000..5932b4c --- /dev/null +++ b/go/l16.go @@ -0,0 +1,30 @@ +package main + +import ( + "fmt" + "os" + "net/http" + "log" + "github.com/joho/godotenv" +) + +func handler(w http.ResponseWriter, r *http.Request) { + err := godotenv.Load() + if err != nil { + log.Fatalf("%v\n", err) + } + PathFile := os.Getenv("html_file_for_l16.go") // Enter the file path for the html_file_for_l16.go variable into the env file + html, err := os.ReadFile(PathFile) + if err != nil { + log.Fatalf("%v\n", err) + } + fmt.Fprint(w, string(html)) +} + +func main() { + http.HandleFunc("/VSZw5p9vwaCxQgU/efNCQ3Vz3L2P8ZGv3VWp/ybZAUeqSMbPpcDsc7G6e/", handler) + err := http.ListenAndServe(":23455", nil) + if err != nil { + log.Fatalf("%v\n", err) + } +} diff --git a/go/l17.go b/go/l17.go new file mode 100644 index 0000000..f7e4647 --- /dev/null +++ b/go/l17.go @@ -0,0 +1,139 @@ +package main + +import ( + "encoding/json" + "fmt" + "log" + "net/http" + "os" + "strconv" + "strings" + "time" + + mqtt "github.com/eclipse/paho.mqtt.golang" + "github.com/joho/godotenv" +) + +type OpenWeather struct { + City string `json:"name"` + Main struct { + Temp float64 `json:"temp"` + FeelLike float64 `json:"feels_like"` + } `json:"main"` + Weather []struct { + MainWeather string `json:"main"` + Description string `json:"description"` + } `json:"weather"` + Wind struct { + Speed float64 `json:"speed"` + } `json:"wind"` +} + +func WeatherReq() (string, float64, string, float64, float64, string) { + err := godotenv.Load() + if err != nil { + log.Fatalf("upload your .env file %v\n", err) + } + api := os.Getenv("openweathermap") + if api == "" { + log.Fatalf("add your openweathermap api in .env file\n") + } + city := os.Getenv("city_openweather") + if city == "" { + log.Fatalf("add your city for openweathermap in .env file\n") + } + client := &http.Client{ + Timeout: 20 * time.Second, + } + lin := "https://api.openweathermap.org/data/2.5/weather?q=" + city + "&units=metric&appid=" + api + url := strings.ReplaceAll(lin, " ", "%20") + req, err := http.NewRequest("GET", url, nil) + if err != nil { + log.Fatalf("%v\n", err) + } + resp, err := client.Do(req) + if err != nil { + log.Fatalf("%v\n", err) + } + if resp.StatusCode != 200 { + log.Fatalf("openweathermap return %d\n", resp.StatusCode) + } + defer resp.Body.Close() + var WeatherData OpenWeather + err = json.NewDecoder(resp.Body).Decode(&WeatherData) + if err != nil { + log.Fatalf("%v\n", err) + } + return WeatherData.City, WeatherData.Main.Temp, WeatherData.Weather[0].MainWeather, WeatherData.Wind.Speed, WeatherData.Main.FeelLike, WeatherData.Weather[0].Description +} + +func Send(client mqtt.Client, topic string) { + city, temp, main, speed, feel, description := WeatherReq() + payload := fmt.Sprintf("City: %s, Temperature: %.2f°C, Feel like %.2f°C\nWeather: %s, %s, Wind %.2fm/s", city, temp, feel, main, description, speed) + + token := client.Publish(topic, 1, false, payload) + token.Wait() + if err := token.Error(); err != nil { + log.Fatalf("%v\n", token.Error()) + } else { + fmt.Println("Sent in", topic) + } +} + +func main() { + opts := mqtt.NewClientOptions() + + err := godotenv.Load() + if err != nil { + log.Fatalf("%v\n", err) + } + broker := os.Getenv("broker_mqtt") + if broker == "" { + log.Fatalf("add yout broker in .env file\n") + } + ClientID := os.Getenv("clientid_mqtt") + if ClientID == "" { + log.Fatalf("add your client id in .env file") + } + topic := os.Getenv("topic_mqtt") + if topic == "" { + log.Fatalf("add your topic in .env file") + } + username := os.Getenv("login_mqtt") + if username != "" { + opts.SetUsername(username) + } + password := os.Getenv("password_mqtt") + if password != "" { + opts.SetPassword(password) + } + TimeHour := os.Getenv("TimeHourSendMQTT") + + opts.AddBroker(broker) + opts.SetClientID(ClientID) + opts.SetConnectTimeout(5 * time.Second) + + client := mqtt.NewClient(opts) + if token := client.Connect(); token.Wait() && token.Error() != nil { + log.Fatalf("%v\n", token.Error()) + } + defer client.Disconnect(250) + + fmt.Println("Connect to a broker") + var ticker *time.Ticker + if TimeHour != "" { + ReallyTimeHour, err := strconv.Atoi(TimeHour) + if err != nil { + log.Fatalf("%s\n", err) + } + ticker = time.NewTicker(time.Duration(ReallyTimeHour) * time.Hour) + } else { + ticker = time.NewTicker(2 * time.Hour) + } + defer ticker.Stop() + Send(client, topic) + + for range ticker.C { + Send(client, topic) + } +} diff --git a/go/l18.go b/go/l18.go new file mode 100644 index 0000000..6b39ad9 --- /dev/null +++ b/go/l18.go @@ -0,0 +1,45 @@ +package main + +import ( + "fmt" + // "os" + // "github.com/joho/godotenv" + "encoding/json" + "net/http" + "time" + "bytes" + "log" +) + +type Send struct{ + Name string `json:"name"` + Age int `json:"id"` +} + +func main() { + fmt.Println("Name for body") + var name string + fmt.Scanln(&name) + data := Send{ + Name: name, + Age: 66, + } + client := &http.Client{ + Timeout: 10 * time.Second, + } + body, err := json.Marshal(data) + if err != nil { + log.Fatalf("%v\n", err) + } + req, err := http.NewRequest("POST", "https://api.restful-api.dev/objects", bytes.NewBuffer(body)) + if err != nil { + log.Fatalf("%v\n", err) + } + req.Header.Set("Content-Type", "application/json") + resp, err := client.Do(req) + if err != nil { + log.Fatalf("%v\n", err) + } + defer resp.Body.Close() + fmt.Println("Status code", resp.StatusCode) +} \ No newline at end of file diff --git a/go/l19/.gitignore b/go/l19/.gitignore new file mode 100644 index 0000000..5991b1f --- /dev/null +++ b/go/l19/.gitignore @@ -0,0 +1,4 @@ +.env +.*.*.swp +.idea +.vscode diff --git a/go/l19/l1.go b/go/l19/l1.go new file mode 100644 index 0000000..3d7d756 --- /dev/null +++ b/go/l19/l1.go @@ -0,0 +1,52 @@ +package main + +import ( + "fmt" + "net/http" + "encoding/json" +) + +type User struct{ + Age int `json:"age"` + Name string `json:"name"` + Email string `json:"email"` +} + +var setChan = make(chan User) + +func handle(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodPost { + http.Error(w, "not", http.StatusMethodNotAllowed) + return + } + + var data User + err := json.NewDecoder(r.Body).Decode(&data) + if err != nil { + http.Error(w,"no", http.StatusBadRequest) + return + } + defer r.Body.Close() + + setChan <- data + w.WriteHeader(http.StatusOK) + w.Write([]byte("Data received")) +} + +func WatchChanell() { + for u := range setChan { + JsonData, err := json.Marshal(u) + if err != nil { continue } + fmt.Println(string(JsonData)) + } +} + +func main() { + go WatchChanell() + http.HandleFunc("/user", handle) + fmt.Println(":7777") + err := http.ListenAndServe(":7777", nil) + if err != nil { + panic(err) + } +} diff --git a/go/l19/l2.go b/go/l19/l2.go new file mode 100644 index 0000000..fda68d4 --- /dev/null +++ b/go/l19/l2.go @@ -0,0 +1,45 @@ +package main + +import ( + "fmt" + "net/http" + "encoding/json" + "time" + "bytes" + "io" +) + +type UserStruct struct{ + Age int `json:"age"` + Name string `json:"name"` + Email string `json:"email"` +} + +func main() { + user := UserStruct{ + Age: 66, + Name: "Sergey", + Email: "Likhodeev.60@mail.ru", + } + JsonData, err := json.Marshal(user) + if err != nil { + panic(err) + } + client := &http.Client{ + Timeout: 5 * time.Second, + } + req, err := http.NewRequest("POST", "http://127.0.0.1:7777/user", bytes.NewBuffer(JsonData)) + if err != nil { + panic(err) + } + resp, err := client.Do(req) + if err != nil { + panic(err) + } + body, err := io.ReadAll(resp.Body) + if err != nil { + panic(err) + } + fmt.Printf("status code %d\n", resp.StatusCode) + fmt.Println(string(body)) +} \ No newline at end of file diff --git a/go/l19/output/l1 b/go/l19/output/l1 new file mode 100755 index 0000000..9d9acb7 Binary files /dev/null and b/go/l19/output/l1 differ diff --git a/go/l2.go b/go/l2.go new file mode 100644 index 0000000..49bb41b --- /dev/null +++ b/go/l2.go @@ -0,0 +1,26 @@ +package main +import ( + "fmt" +) +func polz() { + fmt.Println("Первое число ") + var x1 int + fmt.Scan(&x1) + fmt.Println("Второе число ") + var x2 int + fmt.Scan(&x2) + x3 := x1+x2 + fmt.Println(x1 , "+" , x2 , "=" , x3) +} +func main() { + for { + fmt.Println("1. Начать\n2. Закончить") + var choise int + fmt.Scan(&choise) + if choise == 1 { + polz() + } else if choise == 2 { + return + } + } +} diff --git a/go/l3.go b/go/l3.go new file mode 100644 index 0000000..149e8fb --- /dev/null +++ b/go/l3.go @@ -0,0 +1,23 @@ +package main + +import ( + "fmt" +) + +func main() { + fmt.Println("Сколько") + var pol string + fmt.Scanln(&pol) + fmt.Println("Кому?") + var pol2 string + fmt.Scanln(&pol2) + + var sergay []string + sergay = append(sergay, pol2, pol) + if sergay[1] == "31" || sergay[1] == "21" || sergay[1] == "41" || sergay[1] == "51" || sergay[1] == "61" || sergay[1] == "71" || sergay[1] == "81" || sergay[1] == "91" || sergay[1] == "101" { + sergay = append(sergay, "год") + } else { + sergay = append(sergay, "лет") + } + fmt.Println(sergay[0], sergay[1], sergay[2]) +} diff --git a/go/l4.go b/go/l4.go new file mode 100644 index 0000000..3c72e57 --- /dev/null +++ b/go/l4.go @@ -0,0 +1,50 @@ +package main + +import ( + "fmt" +) + +func logic() string { + var phrase string + fmt.Println("Твой возраст") + var x int + _, err := fmt.Scan(&x) + if err != nil { + phrase = "еблан" + return phrase + } + switch { + case x < 0: + phrase = "Ты еще не родился" + case x < 12: + phrase = "Малолетка ебаная" + case x >= 12 && x <= 19: + phrase = "Ты подросток" + case x >= 20 && x <= 65: + phrase = "Ебать ты средний" + case x > 65: + phrase = "Все давай в могилу" + default: + phrase = "не" + } + return phrase +} + +func main() { + fmt.Println("Как звать тебя") + var name string + fmt.Scanln(&name) + for { + fmt.Println("1. Начать\n2. Закончить") + var pol string + fmt.Scanln(&pol) + if pol == "1" { + phr := logic() + fmt.Println("Тебя зовут", name, ",", phr) + } else if pol == "2" { + break + } else { + fmt.Println("Не то") + } + } +} diff --git a/go/l5.go b/go/l5.go new file mode 100644 index 0000000..2720f28 --- /dev/null +++ b/go/l5.go @@ -0,0 +1,18 @@ +package main + +import ( + "fmt" + "os" + "github.com/joho/godotenv" + "log" +) + +func main() { + err := godotenv.Load() + if err != nil { + log.Fatalln(err) + return + } + api := os.Getenv("api_key") + fmt.Println(api) +} diff --git a/go/l6.go b/go/l6.go new file mode 100644 index 0000000..f2e57dd --- /dev/null +++ b/go/l6.go @@ -0,0 +1,18 @@ +package main + +import ( + "fmt" + "strings" +) + +func main() { + fmt.Println("Ты кто?") + var pol string + fmt.Scanln(&pol) + ser := strings.ToLower(pol) + if strings.HasPrefix(ser, "серг") { + fmt.Println("Обнаружен сергей") + } else { + fmt.Println("Ты не сергей") + } +} diff --git a/go/l7.go b/go/l7.go new file mode 100644 index 0000000..6a91b46 --- /dev/null +++ b/go/l7.go @@ -0,0 +1,18 @@ +package main + +import ( + "fmt" +) + +func main() { + grades := []int{} + grades = append(grades, 4, 3, 5, 2, 4, 5, 3) + good := []int{} + for i := len(grades) - 1; i >= 0; i-- { + if grades[i] >= 4 { + good = append(good, grades[i]) + grades = append(grades[:i], grades[i+1:]...) + } + } + fmt.Println(grades[0:3]) +} \ No newline at end of file diff --git a/go/l8.go b/go/l8.go new file mode 100644 index 0000000..f26e860 --- /dev/null +++ b/go/l8.go @@ -0,0 +1,29 @@ +package main + +import ( + "fmt" +) + +func polz() []int { + slice := []int{} + for i := 0; i < 10; i++ { + fmt.Println("Введите числа") + var pol int + fmt.Scan(&pol) + slice = append(slice, pol) + } + return slice +} + +func main() { + packages := polz() + lenp := len(packages) -1 + for i := 0; i < lenp; i++ { + for j := 1; j <= lenp - i; j++ { + if packages[j-1] > packages[j] { + packages[j-1], packages[j] = packages[j], packages[j-1] + } + } + } + fmt.Println(packages) +} \ No newline at end of file diff --git a/go/l9.go b/go/l9.go new file mode 100644 index 0000000..7e5c71d --- /dev/null +++ b/go/l9.go @@ -0,0 +1,20 @@ +package main + +import ( + "fmt" + "strings" +) + +func main() { + fmt.Println("Введите фразу") + var pol string + fmt.Scanln(&pol) + poll := strings.ToLower(pol) + if strings.Contains(poll, "go") { + x := strings.Count(poll, "go") + fmt.Println(x) + } else { + x2 := poll + " go" + fmt.Println(x2) + } +} \ No newline at end of file diff --git a/go/output/l1 b/go/output/l1 new file mode 100755 index 0000000..947df54 Binary files /dev/null and b/go/output/l1 differ diff --git a/go/output/l10 b/go/output/l10 new file mode 100755 index 0000000..43e8c0f Binary files /dev/null and b/go/output/l10 differ diff --git a/go/output/l11 b/go/output/l11 new file mode 100755 index 0000000..7ae727c Binary files /dev/null and b/go/output/l11 differ diff --git a/go/output/l12 b/go/output/l12 new file mode 100755 index 0000000..430c0c0 Binary files /dev/null and b/go/output/l12 differ diff --git a/go/output/l13 b/go/output/l13 new file mode 100755 index 0000000..64799a9 Binary files /dev/null and b/go/output/l13 differ diff --git a/go/output/l14 b/go/output/l14 new file mode 100755 index 0000000..e2d9e00 Binary files /dev/null and b/go/output/l14 differ diff --git a/go/output/l15 b/go/output/l15 new file mode 100755 index 0000000..4e557f6 Binary files /dev/null and b/go/output/l15 differ diff --git a/go/output/l16 b/go/output/l16 new file mode 100755 index 0000000..f21994d Binary files /dev/null and b/go/output/l16 differ diff --git a/go/output/l17 b/go/output/l17 new file mode 100755 index 0000000..e8d1016 Binary files /dev/null and b/go/output/l17 differ diff --git a/go/output/l18 b/go/output/l18 new file mode 100755 index 0000000..da31aa2 Binary files /dev/null and b/go/output/l18 differ diff --git a/go/output/l2 b/go/output/l2 new file mode 100755 index 0000000..cbb8c2f Binary files /dev/null and b/go/output/l2 differ diff --git a/go/output/l3 b/go/output/l3 new file mode 100755 index 0000000..d57c445 Binary files /dev/null and b/go/output/l3 differ diff --git a/go/output/l4 b/go/output/l4 new file mode 100755 index 0000000..b575dcc Binary files /dev/null and b/go/output/l4 differ diff --git a/go/output/l5 b/go/output/l5 new file mode 100755 index 0000000..1af7e0e Binary files /dev/null and b/go/output/l5 differ diff --git a/go/output/l6 b/go/output/l6 new file mode 100755 index 0000000..df47f9c Binary files /dev/null and b/go/output/l6 differ diff --git a/go/output/l7 b/go/output/l7 new file mode 100755 index 0000000..e799ea5 Binary files /dev/null and b/go/output/l7 differ diff --git a/go/output/l8 b/go/output/l8 new file mode 100755 index 0000000..ab9ccc9 Binary files /dev/null and b/go/output/l8 differ diff --git a/go/output/l9 b/go/output/l9 new file mode 100755 index 0000000..50623e4 Binary files /dev/null and b/go/output/l9 differ diff --git a/go/tg/.gitignore b/go/tg/.gitignore new file mode 100644 index 0000000..4c49bd7 --- /dev/null +++ b/go/tg/.gitignore @@ -0,0 +1 @@ +.env diff --git a/go/tg/go.mod b/go/tg/go.mod new file mode 100644 index 0000000..b9184e9 --- /dev/null +++ b/go/tg/go.mod @@ -0,0 +1,11 @@ +module my-bot + +go 1.25.0 + +require ( + github.com/PuerkitoBio/goquery v1.12.0 // indirect + github.com/andybalholm/cascadia v1.3.3 // indirect + github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1 // indirect + github.com/joho/godotenv v1.5.1 // indirect + golang.org/x/net v0.52.0 // indirect +) diff --git a/go/tg/go.sum b/go/tg/go.sum new file mode 100644 index 0000000..7bc9eba --- /dev/null +++ b/go/tg/go.sum @@ -0,0 +1,75 @@ +github.com/PuerkitoBio/goquery v1.12.0 h1:pAcL4g3WRXekcB9AU/y1mbKez2dbY2AajVhtkO8RIBo= +github.com/PuerkitoBio/goquery v1.12.0/go.mod h1:802ej+gV2y7bbIhOIoPY5sT183ZW0YFofScC4q/hIpQ= +github.com/andybalholm/cascadia v1.3.3 h1:AG2YHrzJIm4BZ19iwJ/DAua6Btl3IwJX+VI4kktS1LM= +github.com/andybalholm/cascadia v1.3.3/go.mod h1:xNd9bqTn98Ln4DwST8/nG+H0yuB8Hmgu1YHNnWw0GeA= +github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1 h1:wG8n/XJQ07TmjbITcGiUaOtXxdrINDz1b0J1w0SzqDc= +github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1/go.mod h1:A2S0CWkNylc2phvKXWBBdD3K0iGnDBGbzRpISP2zBl8= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= +github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= +golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= +golang.org/x/net v0.52.0 h1:He/TN1l0e4mmR3QqHMT2Xab3Aj3L9qjbhRm78/6jrW0= +golang.org/x/net v0.52.0/go.mod h1:R1MAz7uMZxVMualyPXb+VaqGSa3LIaUqk0eEt3w36Sw= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= +golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/go/tg/l1.go b/go/tg/l1.go new file mode 100644 index 0000000..ef68ea3 --- /dev/null +++ b/go/tg/l1.go @@ -0,0 +1,36 @@ +package main + +import ( + "fmt" + "log" + tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5" + "github.com/joho/godotenv" + "os" +) + +func main() { + err := godotenv.Load() + if err != nil { + log.Fatalf("%v\n", err) + } + tg := os.Getenv("TG_TOKEN") + bot, err := tgbotapi.NewBotAPI(tg) + if err != nil { + log.Fatalf("%v\n", err) + } + bot.Debug = true + fmt.Printf("Работает как %s", bot.Self.UserName) + u := tgbotapi.NewUpdate(0) + u.Timeout = 60 + upd := bot.GetUpdatesChan(u) + for update := range upd { + if update.Message == nil { + continue + } + id := update.Message.Chat.ID + if update.Message.IsCommand() && update.Message.Command() == "start" { + msg := tgbotapi.NewMessage(id, "Сергей") + bot.Send(msg) + } + } +} diff --git a/go/tg/l2.go b/go/tg/l2.go new file mode 100644 index 0000000..5ac4d0a --- /dev/null +++ b/go/tg/l2.go @@ -0,0 +1,93 @@ +package main + +import ( + "fmt" + tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5" + "github.com/joho/godotenv" + "os" + "log" + "net/http" + "net/url" + "encoding/json" + "crypto/tls" + "time" + "strconv" +) + +var userStates = make(map[int64]string) +var Proxy = make(map[int64]string) + +type DataIP struct { + IP string `json:"query"` + Country string `json:"country"` + ISP string `json:"isp"` +} + +func ProxyCheck(proxy string) (bool, string, string, string) { + proxyurl, err := url.Parse(proxy) + if err != nil { + fmt.Println(err) + } + transport := &http.Transport{ + TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, + Proxy: http.ProxyURL(proxyurl), + } + client := &http.Client{ + Transport: transport, + Timeout: 20 * time.Second, + } + req, err := http.NewRequest("GET", "http://ip-api.com/json", nil) + if err != nil { + fmt.Println(err) + } + resp, err := client.Do(req) + if err != nil { + return false, "Нет", "Нет", "Нет" + fmt.Println(err) + } + defer resp.Body.Close() + var data DataIP + err = json.NewDecoder(resp.Body).Decode(&data) + if err != nil { + fmt.Println(err) + } + return true, data.IP, data.Country, data.ISP +} + +func main() { + err := godotenv.Load() + if err != nil { + log.Fatalf("%v\n", err) + } + tg := os.Getenv("TG_TOKEN") + bot, err := tgbotapi.NewBotAPI(tg) + if err != nil { + log.Fatalf("%v\n", err) + } + bot.Debug = true + u := tgbotapi.NewUpdate(0) + u.Timeout = 60 + updates := bot.GetUpdatesChan(u) + for update := range updates { + if update.Message == nil { continue } + userID := update.Message.From.ID + if update.Message.IsCommand() { + if update.Message.Command() == "start" { + userStates[userID] = "wating" + bot.Send(tgbotapi.NewMessage(userID, "Введите прокси")) + } + continue + } + switch userStates[userID] { + case "wating": + prox := update.Message.Text + Proxy[userID] = prox + userStates[userID] = "" + status, ip, country, isp := ProxyCheck(Proxy[userID]) + stat := strconv.FormatBool(status) + msg := "Работа прокси: " + stat + "\nIP: " + ip + "\nСтрана: " + country + "\nПровайдер: " + isp + bot.Send(tgbotapi.NewMessage(userID, msg)) + } + } +} + diff --git a/go/tg/l3.go b/go/tg/l3.go new file mode 100644 index 0000000..4d9f2b0 --- /dev/null +++ b/go/tg/l3.go @@ -0,0 +1,21 @@ +package main + +import ( + "fmt" + "log" + "github.com/PuerkitoBio/goquery" +) + +func main() { + doc, err := goquery.NewDocument("https://ru.wikipedia.org/api/rest_v1/page/mobile-html/%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0") + if err != nil { + log.Fatal(err) + } + + doc.Find("img").Each(func(_ int, s *goquery.Selection) { + src, exists := s.Attr("src") + if exists { + fmt.Println(src) + } + }) +} diff --git a/go/tg/output/l1 b/go/tg/output/l1 new file mode 100755 index 0000000..663c0c7 Binary files /dev/null and b/go/tg/output/l1 differ diff --git a/go/tg/output/l2 b/go/tg/output/l2 new file mode 100755 index 0000000..eb81008 Binary files /dev/null and b/go/tg/output/l2 differ diff --git a/html/image.jpeg b/html/image.jpeg new file mode 100644 index 0000000..1c28b82 Binary files /dev/null and b/html/image.jpeg differ diff --git a/html/l1.html b/html/l1.html new file mode 100644 index 0000000..1c23d31 --- /dev/null +++ b/html/l1.html @@ -0,0 +1,75 @@ + + + + + + HTML + + + +
+

Site

+
+ +
+ +
+
+
+
+

Я да

+

ДА да

+
+
+
+ + \ No newline at end of file diff --git a/html/l2.html b/html/l2.html new file mode 100644 index 0000000..2287e00 --- /dev/null +++ b/html/l2.html @@ -0,0 +1,22 @@ + + + + + + HTML2 + + + + +

СЕРГУЛЕЧЕК

+ +
+

СЕРГУУУУНЧИК

+
+ + \ No newline at end of file diff --git a/html/l3.html b/html/l3.html new file mode 100644 index 0000000..e747e7b --- /dev/null +++ b/html/l3.html @@ -0,0 +1,22 @@ + + + + + + HTML3 + + + + +

Сергей

+ +
+

Сергей

+
+ + \ No newline at end of file diff --git a/js/l1.js b/js/l1.js new file mode 100644 index 0000000..0c9eb08 --- /dev/null +++ b/js/l1.js @@ -0,0 +1,24 @@ +let x = { + name: "Алеша", + age: 25 +} +x.city = "ДА"; +console.log(x.age); +console.log(x.name); +console.log(x.city); +let al = ["яблоко", "человек", "бананы"]; +console.log(al[1]); +if(al[1] == "человек") { + console.log("сергей"); +} +let i = 0; +while(1) { + console.log("сергей"); + i++; + if(i < 10) { + continue; + } + else { + break; + } +} \ No newline at end of file diff --git a/js/l2.js b/js/l2.js new file mode 100644 index 0000000..79fc259 --- /dev/null +++ b/js/l2.js @@ -0,0 +1,14 @@ +const readline = require('readline').createInterface({ + input: process.stdin, + output: process.stdout +}); + +readline.question('Число ', (answer) => { + let pol = Number(answer); + readline.close(); + let x = 0; + while(x <= 100) { + x = x + 1; + console.log(pol, '*', x, '=', pol * x); + } +}); diff --git a/php/l1.php b/php/l1.php new file mode 100644 index 0000000..dd143d3 --- /dev/null +++ b/php/l1.php @@ -0,0 +1,3 @@ + diff --git a/python/.gitignore b/python/.gitignore new file mode 100644 index 0000000..f372467 --- /dev/null +++ b/python/.gitignore @@ -0,0 +1,3 @@ +.vscode +.env +output \ No newline at end of file diff --git a/python/l1.py b/python/l1.py new file mode 100644 index 0000000..eb3b324 --- /dev/null +++ b/python/l1.py @@ -0,0 +1,43 @@ +import sys + +pol = input('Начнем(да/нет) ') +sp = [] + +def poll(): + pol1 = float(input('Температура: ')) + pol2 = input('Единица (C/F): ') + if pol2=='C': + x = pol1*1.8+32 + xx = f'{pol1}C = {x}' + sp.append(xx) + print(f'{pol1}C = {x}') + elif pol2=='F': + f = (pol1 - 32)/1.8 + ff = f'{pol1}F = {f}' + sp.append(ff) + print(ff) + else: + print('Введите верную букву') + +def his(): + print(sp) + +def circle(): + while True: + if pol=='да': + poll() + print('1. Продолжить\n2. Закончить\n3. История') + po = input('Число ') + if po=='1': + continue + elif po=='2': + sys.exit(1) + elif po=='3': + his() # Костыль + else: + print('Не то число') + elif pol=='нет': + sys.exit(1) + else: + print('нет') +circle() diff --git a/python/l2.py b/python/l2.py new file mode 100644 index 0000000..5d17d91 --- /dev/null +++ b/python/l2.py @@ -0,0 +1,65 @@ +import sys + +sp = [] # Список для истории + +def add(a, b): + return a + b + +def subtract(a, b): + return a - b + +def multiply(a, b): + return a * b + +def divide(a, b): + if b == 0: + return 'Ошибка: деление на 0' + return a / b +def calculate(n1, op, n2): + if op == '+': + res = add(n1, n2) + elif op == '-': + res = subtract(n1, n2) + elif op == '*': + res = multiply(n1, n2) + elif op == '/': + res = divide(n1, n2) + else: + return 'Неизвестная операция' + return res + +def show_history(): + print('\n--- История ---') + for i, entry in enumerate(sp[-5:], 1): + print(f' {i}. {entry}') + print() + +def calc(): + while True: + try: + n1 = float(input('Первое число: ')) + n2 = float(input('Второе число: ')) + except ValueError: + print('Ошибка: введите число!') + continue + + op = input('Операция (+, -, *, /): ') + + result = calculate(n1, op, n2) + if isinstance(result, str): + print(result) + continue + + entry = f'{n1} {op} {n2} = {result}' + sp.append(entry) + print(entry) + + pol = input('Ещё раз? (да/history/нет): ') + if pol == 'нет': + break + elif pol == 'history': + show_history() + elif pol != 'да': + print('Не тот выбор') + +calc()