utils

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 26, 2026 License: MIT Imports: 27 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckAndFilterProxies

func CheckAndFilterProxies(proxies []string, maxWorkers int, localAddr string, timeout time.Duration) types.CheckResults

CheckAndFilterProxies многопоточно проверяет список прокси, отбрасывает мертвые и сортирует по пингу.

func CheckApiTelegramVpnOrgAvailability

func CheckApiTelegramVpnOrgAvailability()

CheckApiTelegramVpnOrgAvailability проверяет доступность основного домена api.telegramvpn.org или его зеркала, устанавливает рабочий базовый URL в конфигурации и выводит уведомление в лог при обнаружении сетевых ограничений.

func CheckFile

func CheckFile(path string) error

CheckFile анализирует файл по указанному пути на соответствие формату списка Telegram-прокси

func CheckMtproXyzAvailability

func CheckMtproXyzAvailability()

CheckMtproXyzAvailability проверяет доступность основного домена mtpro.xyz или его зеркала, устанавливает рабочий базовый URL в конфигурации и выводит уведомление в лог при обнаружении сетевых ограничений.

func CheckMtprotoRuAvailability

func CheckMtprotoRuAvailability()

CheckMtprotoRuAvailability проверяет доступность основного домена mtproto.ru или его зеркала, устанавливает рабочий базовый URL в конфигурации и выводит уведомление в лог при обнаружении сетевых ограничений.

func CheckProxy

func CheckProxy(rawURL string, localAddr string, timeout time.Duration) (types.Result, error)

CheckProxy проверяет один MTProto-прокси через gotd, выполняя реальный MTProto-хендшейк и запрос HelpGetNearestDC для подтверждения работоспособности.

func CheckTelegramWebAvailability

func CheckTelegramWebAvailability()

CheckTelegramWebAvailability проверяет доступность основного домена Telegram или его зеркала, устанавливает рабочий базовый URL в конфигурации и выводит уведомление в лог при обнаружении сетевых ограничений.

func ExtractProxiesFromJS

func ExtractProxiesFromJS(content string, providerName string) []string

ExtractProxiesFromJS находит Base64 в atob(), декодирует его, достает JSON и формирует ссылки

func IsFile

func IsFile(path string) bool

IsFile проверяет существование пути и что он файл, а не папка

func IsTextLine

func IsTextLine(s string) bool

IsTextLine проверяет, состоит ли строка из печатных символов и стандартных управляющих кодов: возвращает false, если в строке обнаружены непечатные управляющие символы.

func IsWebAvailable

func IsWebAvailable(url string) bool

IsWebAvailable проверяет доступность веб-версии Telegram

func LoadFromFile

func LoadFromFile(filename string) ([]string, error)

LoadFromFile читает файл построчно и возвращает список прокси, если файла нет - возвращает пустой список без ошибки.

func NormalizeProxyURL

func NormalizeProxyURL(raw string) (string, error)

NormalizeProxyURL нормализует ссылку tg://proxy?, убирая мусорные параметры и приводя к единому виду, возвращает ошибку если ссылка не содержит обязательных полей server/port/secret.

func ResolveOptionalFlags

func ResolveOptionalFlags(o *OptionalString, flagName string)

ResolveOptionalFlags анализирует аргументы командной строки для определения фактического состояния флага, позволяет корректно обработать случаи, когда флаг указан без значения или предшествует другому флагу.

func ResolvePath

func ResolvePath(path string) (string, error)

ResolvePath преобразует путь в абсолютный вид с использованием разделителей в стиле POSIX, раскрывая домашнюю директорию пользователя и разрешая символические ссылки.

func SaveResults

func SaveResults(results types.CheckResults, alivePath, deadPath string, saveDead bool) error

SaveResults выполняет итоговое сохранение проверенных прокси в соответствующие файлы, логирует статистику обработки и опционально записывает список неактивных адресов в зависимости от флага saveDead.

func Upload

func Upload(cfg UploadConfig) error

Upload выполняет высокоуровневую процедуру выгрузки файла на основе переданного UploadConfig: оркестрирует процесс парсинга параметров, инициализации клиента и опционального сжатия истории

func WithStemSuffix

func WithStemSuffix(path, suffix string) string

WithStemSuffix добавляет указанный суффикс к базовому имени файла перед его расширением, сохраняя исходный путь к директории и расширение файла.

Types

type GitHubUploader

type GitHubUploader struct {
	// contains filtered or unexported fields
}

GitHubUploader определяет настроенные загрузчик на Github

func NewGitHubUploader

func NewGitHubUploader(token, owner, repo, branch string) (*GitHubUploader, error)

NewGitHubUploader инициализирует новый экземпляр загрузчика с проверкой обязательных параметров.

func (*GitHubUploader) GetEmail

func (u *GitHubUploader) GetEmail(ctx context.Context) string

GetEmail извлекает адрес электронной почты пользователя для формирования метаданных коммита: пытается получить основной верифицированный email или генерирует технический адрес GitHub.

func (*GitHubUploader) SuperSquash

func (u *GitHubUploader) SuperSquash(ctx context.Context, commitMsg string) error

SuperSquash необратимо сжимает всю историю ветки в один orphan-коммит: удаляет всю историю изменений, оставляя только текущее состояние дерева файлов.

func (*GitHubUploader) UploadFile

func (u *GitHubUploader) UploadFile(ctx context.Context, localPath, remotePath, commitMsg string) error

UploadFile загружает или обновляет содержимое файла в целевом репозитории, автоматически вычисляет SHA существующего файла для выполнения операции обновления.

type OptionalString

type OptionalString struct {
	Value    string
	IsSet    bool
	HasValue bool
}

OptionalString инкапсулирует строковое значение флага и метаданные о его присутствии в аргументах командной строки.

func (*OptionalString) Set

func (o *OptionalString) Set(s string) error

Set устанавливает значение флага и обновляет внутренние индикаторы присутствия данных

func (*OptionalString) String

func (o *OptionalString) String() string

String возвращает строковое представление значения флага

type RepoInfo

type RepoInfo struct {
	Owner string
	Name  string
}

RepoInfo хранит владельца и название репо

func ParseRepoURL

func ParseRepoURL(rawURL string) (RepoInfo, error)

ParseRepoURL парсит ссылку на репозиторий и возвращает владельца и название репо из строк вида:

type UploadConfig

type UploadConfig struct {
	Token      string // обязательно
	RepoUrl    string // обязательно, но любой формат
	Branch     string // не обязательно
	FilePath   string // обязательно
	RemotePath string // не обязательно
	CommitMsg  string // не обязательно
	Squash     bool   // не обязательно
}

UploadConfig определяет параметры для процесса загрузки файлов в удаленный репозиторий.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL