Вчусь використовувати ПРОКСІ.
Дуже проста штука, працює миттєво через дефолтний пакет
Все що потрібно додати до головного класу це
А потім додати новий клас:
І абсолютно всі запити додатку будуть йти через вказаний проксі-сервер :)
Ніяких змін у тому як робляться запити робити не потрібно)
Дуже проста штука, працює миттєво через дефолтний пакет
http.dart.Все що потрібно додати до головного класу це
class MyAppState extends State<MyApp> {
void initState() {
HttpOverrides.global = MyHttpOverrides(); // ОЦЯ СТРОКА
super.initState();
}
...А потім додати новий клас:
class MyHttpOverrides extends HttpOverrides{
final ipAddress = '666.66.66.6';
int port = 666;
final credentials = HttpClientBasicCredentials('login', 'password');
@override
HttpClient createHttpClient(SecurityContext? context){
return super.createHttpClient(context)
..addProxyCredentials(ipAddress, port, 'main', credentials)
..findProxy = ((uri) => 'PROXY $ipAddress:$port')
..badCertificateCallback = (X509Certificate cert, String host, int port)=> true;
}
}
І абсолютно всі запити додатку будуть йти через вказаний проксі-сервер :)
Ніяких змін у тому як робляться запити робити не потрібно)
Puzzak's Flutter
Вчусь використовувати ПРОКСІ. Дуже проста штука, працює миттєво через дефолтний пакет http.dart. Все що потрібно додати до головного класу це class MyAppState extends State<MyApp> { void initState() { HttpOverrides.global = MyHttpOverrides(); // ОЦЯ…
Перевірка доступності проксі
Продовжуючи тему проксі, варто також додати що зазвичай варто перевіряти чи доступний проксі-сервер, та чи підходять облікові данні. В випадку з проксі який я використовую, мені достатньо наступної функції:
Яка буде повертати булеве значення (чи вірні дані).
Викликати цю функцію треба так:
Зверніть увагу на змінні
Продовжуючи тему проксі, варто також додати що зазвичай варто перевіряти чи доступний проксі-сервер, та чи підходять облікові данні. В випадку з проксі який я використовую, мені достатньо наступної функції:
Future<bool> pingProxy(address, creds) async {
try {
final response = await http.head(
Uri.http(address),
headers: {
"Proxy-Authorization": "Basic ${base64.encode(utf8.encode(creds))}"
}
);
return response.statusCode == 503;
} catch (e) {
return false;
}
}Яка буде повертати булеве значення (чи вірні дані).
Викликати цю функцію треба так:
await pingProxy("$proxyaddress:$proxyport", "$proxyusername:$proxypassword").then((value){
if(value){
//Все вірно, активуємо проксі
}
});Зверніть увагу на змінні
$proxyaddress, $proxyport, $proxyusername, $proxypassword.❤🔥1
Forwarded from Puzzak's (Puzzak)
Оаоао, коли підтримка у Flutter?
:9to5linux
:9to5linux
9to5Linux
GNOME 47 Alpha Desktop Environment Released with Support for Accent Colors - 9to5Linux
GNOME 47 Alpha is now available for public testing with support for accent colors, Wayland improvements, and many other changes.
Puzzak's
Оаоао, коли підтримка у Flutter? :9to5linux
Скоро спробую показати як виглядає адаптивність кольорів на різних платформах. В усіх моїх додатках ієрархія будь-якого екрану виглядає приблизно отак:
Перший білдер слідкує за кольоровою темою пристрою та змінює її динамічно, другий - слідкує за орієнтацією пристрою та робить можливою адаптивність (зміну розміру/пропорцій вікна, керує інтерфейсом в портретній та альбомній орієнтації, тощо).
Приклад можна побачити отута :)
Widget build (){
DynamicColorBuilder (){
LayoutBuilder (){
return Widget (){}
}
}
}Перший білдер слідкує за кольоровою темою пристрою та змінює її динамічно, другий - слідкує за орієнтацією пристрою та робить можливою адаптивність (зміну розміру/пропорцій вікна, керує інтерфейсом в портретній та альбомній орієнтації, тощо).
Приклад можна побачити отута :)
GitHub
FPTools/lib/main.dart at master · Puzzak/FPTools
Email and VoIP management tools built with Flutter - Puzzak/FPTools
Forwarded from Puzzak's (Puzzak)
Media is too big
VIEW IN TELEGRAM
Чесно кажучи, я не певен що це те чого я намагався досягти, але виглядає круто
Forwarded from Puzzak's (Puzzak)
Puzzak's
Чесно кажучи, я не певен що це те чого я намагався досягти, але виглядає круто
Щось
Forwarded from Puzzak's (Puzzak)
This media is not supported in your browser
VIEW IN TELEGRAM
Пам'ятаєте цього чувака? Оце він зараз.
Puzzak's Flutter
Я не дуже довіряю начальству, тож якщо зі мною не розрахуються, буде весело :)
Отут є історія і трошки пояснень про бекдор :)
https://www.reddit.com/r/antiwork/s/ttvStMjwMG
https://www.reddit.com/r/antiwork/s/ttvStMjwMG
Reddit
From the antiwork community on Reddit: Backdooring my app in case employer won't pay
Explore this post and more from the antiwork community
Puzzak's Flutter
Вчусь працювати з telegram api
This media is not supported in your browser
VIEW IN TELEGRAM
Авторизація клієнта пройдена, далі треба реалізувати авторизацію користувача (або бота)
А після цього можна... А потім розкажу :)
А після цього можна... А потім розкажу :)
Puzzak's Flutter
Авторизація клієнта пройдена, далі треба реалізувати авторизацію користувача (або бота) А після цього можна... А потім розкажу :)
Авторизувались ботом, отримуємо сповіщення :)
Puzzak's Flutter
Photo
This media is not supported in your browser
VIEW IN TELEGRAM
60 мегабайт даних генерує клієнт у базі даних ДО моменту логіну. Це саме TDLib, без абсолютно нічого крім самого клієнту
Puzzak's Flutter
60 мегабайт даних генерує клієнт у базі даних ДО моменту логіну. Це саме TDLib, без абсолютно нічого крім самого клієнту
Розваги джунів, робити помилку неправильного приведення даних в потоці, яка не задокументована ніде і навіть для самого рушія програми стала сюрпризом
🐗 🇺🇦 AntiOldSpice
————-Карта каналів УкрТГ————- 2.5к датасет: https://hfs.hampta.pp.ua/ukrtg/graph2500.html 1к датасет: https://hfs.hampta.pp.ua/ukrtg/graph1k.html 500 датасет https://hfs.hampta.pp.ua/ukrtg/graph500.html 250 датасет: https://hfs.hampta.pp.ua/ukrtg/graph250.html…
Підпишіться сюдиво покищо, це колаба року :)