На его смену хочу взять побольше размером 27-28, с разрешением 2k.
смысла брать 4k и 30 дюймовые наверное нет...
import os
import glob
# sort by change date
def sort(path, ext="*.jpg"):
files = glob.glob(os.path.join(path, ext))
files.sort(key=os.path.getmtime)
return files
# rename files
def rename(path):
_sorted = sort(path)
for i, file_path in enumerate(_sorted, 1):
folder, old_name = os.path.split(file_path)
new_name = f"{i}.jpg"
new_path = os.path.join(folder, new_name)
os.rename(file_path, new_path)
print(f"Rename {old_name} to {new_name}")
if __name__ == "__main__":
# path to dir with images
folder_path = "/path/to/dir/images"
rename(folder_path)
Просто блок div c классом
Класс js-pagination-item
div.js-pagination-item
.// wait dom loaded
document.addEventListener('DOMContentLoaded', () => {
// observer
const observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
if (mutation.addedNodes.length > 0) {
mutation.addedNodes.forEach((node) => {
// target element
if (node.nodeType === 1 && node.classList.contains('js-pagination-item')) {
// print in the console log
console.log('Detected element!');
}
});
}
});
});
// start
observer.observe(document.body, {childList: true, subtree: true});
});
# 123.ru > redirect 301 > http://12345.ru,
# 123.ru/?test=123 > redirect 301 > http://12345.ru,
# 123.ru/cats/?test=123 > redirect 301 > http://12345.ru:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^123\.ru [NC]
RewriteRule ^(.*)$ http://12345.ru/ [L,R=301]
# 123.ru > redirect 301 > http://12345.ru,
# 123.ru/?test=123 > redirect 301 > http://12345.ru/?test=123,
# 123.ru/cats/?test=123 > redirect 301 > http://12345.ru/cats/?test=123:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^123\.ru [NC]
RewriteRule ^(.*)$ http://12345.ru/$1 [L,R=301]
# 123.ru/cats/?test=123 > redirect 301 > http://12345.ru:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^123\.ru [NC]
RewriteRule ^(.*)$ http://12345.ru/ [L,R=301]
Результат интересует как behance. Когда при выборе категории меняется страница работ, url из "behance.ru" превращается "behance.ru/kate", но визуально нет переадресации на новую страницу.
// listeners
document.querySelector('.showDivan').addEventListener('click', () => filter('divan'));
document.querySelector('.showShkaf').addEventListener('click', () => filter('shkaf'));
document.querySelector('.showAll').addEventListener('click', () => filter('all'));
// filtering
const filter = category => {
const items = document.querySelectorAll('.product');
items.forEach(item => {
item.style.display = category === 'all' || item.classList.contains(category) ? 'block' : 'none';
});
// change url
history.pushState({}, '', `/category/${category}`);
}
const clickTargetElement = document.querySelector('.hiking__about_item_img');
const imageConfigurations = {
primaryImage: {
htmlElement: document.querySelector('.img1'),
sourcePaths: ['img/about_hiking/1.png', 'img/about_hiking/2.png'],
altTexts: ['House and mountains in the background', 'Snowy mountains']
},
secondaryImage: {
htmlElement: document.querySelector('.img2'),
sourcePaths: ['img/about_hiking/1.png', 'img/about_hiking/2.png'],
altTexts: ['House and mountains in the background', 'Snowy mountains']
}
}
const toggleImageAttributes = ({htmlElement, sourcePaths, altTexts}) => {
const isPrimarySource = htmlElement.getAttribute('src') === sourcePaths[0];
const indexToUse = isPrimarySource ? 1 : 0;
htmlElement.setAttribute('src', sourcePaths[indexToUse]);
htmlElement.setAttribute('alt', altTexts[indexToUse]);
}
clickTargetElement.addEventListener('click', () => {
Object.values(imageConfigurations).forEach(toggleImageAttributes);
});
result
и end
, и перезапускать SpeechRecognition:const rec = new SpeechRecognition();
rec.addEventListener('result', () => {
// code
});
rec.addEventListener('end', () => recognition.start());
rec.start();
как принудительно его включить чтобы не отключался пока страница открыта?
при повторном использовании recognizer.start() - появляется диалоговое окно браузера спрашивающее о микрофоне - как этого избежать?
можно ли отключить это сообщение?
Насколько законно для крупной компании пробивать человека по почте?
Я хочу узнать, насколько незаконны их действия?
На что они меня пробили, отправили письмо моему начальнику, а сама компания чуть ли не угрожает мне.
Существуют ли браузерные расширения для автоматического решения данной капчи?
Меня эта капча настолько бесит, что я даже готов потратить время и написать свое расширение для обхода, лишь бы было внешнее API для ее решения.
Как написать скрипт/софт на Python который будет автоматически отвечать на сообщения в телеграмме по шаблону?
С помощью какого фреймворка вообще пишутся подобные скрипты ?
И возможно ли это реализовать с помощью телеграмм бота написанного на aiogram?
Как нужно вызывать js-функцию, чтобы она брала данные с той формы которую отправили? И как передать через ajax или ID, или Class формы?
<button type="submit" class="button">Отправить</button>
async function sendForm(form) {
const data = {
name: form.querySelector("input[name='name']").value,
email: form.querySelector("input[name='email']").value,
phone: form.querySelector("input[name='phone']").value,
message: form.querySelector("textarea[name='message']").value,
formId: form.id,
formClass: form.className
}
try {
const response = await fetch('php/send.php', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify(data)
});
if(response.ok) {console.log('Success send form')}
else console.log('Error send form', response);
}
catch(error) {console.log('Error: ' + error.message)}
}
document.querySelector('#form1').addEventListener('submit', (e) => {
e.preventDefault();
sendForm(event.target);
});
document.querySelector('#form2').addEventListener('submit', (e) => {
e.preventDefault();
sendForm(event.target);
});
В зависимости от формы нужно в PHP-скрипте менять тему письма.
$json = file_get_contents("php://input");
$data = json_decode($jsonData, true);
// get formId and formClass
$id = $data['formId'];
$class = $data['formClass'];
// this change type email message
Next JS это только про SSR
Next JS это тот же реакт в котором сразу есть все необходимые пакеты для работы с ним или он все же медленней обычного spa приложения на реакте с пакетами?
что в нексте реакт всегда обращается к своему серверу для SSR
а у обычного реакта мы фетчем просто запросы шлем, когда все spa приложение очень быстро работает без лишних запросов на сервер