41 http fetch GET 200 https://registry.npmjs.org/redux-thunk 398ms (cache hit)
42 silly fetch manifest redux@^4.2.1
43 http fetch GET 200 https://registry.npmjs.org/redux 6ms (cache hit)
44 silly fetch manifest redux@^5.0.0
npm install redux@^5.0.0
, либо использовать в режиме совместимости (возможна, нестабильная работа):npm install redux-thunk --legacy-peer-deps
везде искал - не нашел
В в телеграмме есть возможность скрыть автора при пересылке,я хочу чтобы скрипт пользовался ей
from pydantic import BaseModel, ValidationError, field_validator
class Model(BaseModel):
x: int
@model_validator(mode='before')
@classmethod
def validate_x(cls, v: int) -> int:
if x is None:
raise ValueError('X is None')
return cls
try:
Model(x=None)
except ValidationError as e:
print(e)
"""X is None"""
Как сделать исключение для Logout?
# .htaccess
RewriteEngine On
# if url /wp-login.php
RewriteCond %{QUERY_STRING} action=logout [NC]
RewriteRule ^wp-login\.php$ - [L]
# else other rulles
RewriteCond %{THE_REQUEST} \?
RewriteCond %{QUERY_STRING} !^p=
RewriteCond %{REQUEST_URI} !^/wp-admin
RewriteRule .? https://site.com%{REQUEST_URI}? [R=301,L]
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from selenium.common.exceptions import NoSuchElementException
import time
url = 'https://discord.com/channels/1097401827202445382/1097674067601010709'
# driver
driver = webdriver.Chrome()
driver.get(url)
print('your manual authorization, the script is waiting for 30 seconds')
time.sleep(30)
try:
print('find and click element button friends')
button_element = driver.find_element(By.XPATH, '//*[@id="app-mount"]/div[2]/div[1]/div[1]/div/div[2]/div/div/div/div/div[3]/section/div/div[2]/div[4]')
button_element.click()
except NoSuchElementException:
print('error: element button friends not found')
time.sleep(5)
driver.quit()
exit()
time.sleep(5)
try:
print('find scroll element')
element = driver.find_element(By.XPATH, '//*[@id="app-mount"]/div[2]/div[1]/div[1]/div/div[2]/div/div/div/div/div[3]/div[2]/div[2]/aside/div')
except NoSuchElementException:
print('error: scroll element not found')
time.sleep(5)
driver.quit()
exit()
print('move cursor to element')
action = ActionChains(driver)
action.move_to_element(element).perform()
print('scroll down')
driver.execute_script('arguments[0].scrollTop += 300', element)
print('mission complete, thanks to Uncle Misha')
time.sleep(5)
print('exit')
driver.quit()
# your manual authorization, the script is waiting for 30 seconds
# find and click element button friends
# find scroll element
# move cursor to element
# scroll down
# mission complete, thanks to Uncle Misha
exit
имеется ли у wp что-то похожее на инфоблоки битрикса? Куда нужно копать, чтобы их найти?
function true_register_post_type_init() {
$labels = array(
'name' => 'Лиды',
'singular_name' => 'Лид',
'add_new' => 'Добавить лид',
'add_new_item' => 'Добавить лид',
'edit_item' => 'Редактировать лид',
'new_item' => 'Новый лид',
'all_items' => 'Все лиды',
'search_items' => 'Искать лиды',
'not_found' => 'Лидов по заданным критериям не найдено.',
'not_found_in_trash' => 'В корзине нет лидов.',
'menu_name' => 'Лиды'
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => false,
'has_archive' => false,
'menu_icon' => 'dashicons-email-alt2',
'menu_position' => 2,
'supports' => array( 'title', 'editor' )
);
register_post_type( 'lead', $args );
}
add_action( 'init', 'true_register_post_type_init' );
его рекомендуют оборачивать тегом articleТут нужно дать ссылку на эту рекомендацию, чтобы мы могли её оценить не на уровне "Рабинович по телефону напел".
его можно использовать в любом другом месте, а как использовать комментарий на другом сайтеКогда говорят об использовании "в любом месте", подразумевают "любое место данного сайта". И в рамках сайта комментарий действительно может быть оторван от условного рецепта: например, в профиле пользователя может выводиться список всех его комментариев (как здесь) или в сайдбаре может выводиться список всех последних комментариев (как на vc.ru).
если мы отрываем комментарий от статьи он ведь теряет весь смыслНа основе многих лет модерирования этого сайта могу вам сказать, что комментарий комментарию рознь. Некоторые жемчужины, наоборот, непонятно как оказались под каким-нибудь посредственным вопросом, и их можно хоть в Лувр вешать отдельно от всего.
было бы неплохо понять на каком этапе присваиваются эти ключи и перезаписать имеющиеся куки на новые
import requests
from http.cookiejar import CookieJar
# initial cookies
initial_cookies = {}
session = requests.Session()
session.cookies = CookieJar()
# set cookies
session.cookies.update(initial_cookies)
# post
response = session.post(
'https://seller-supply.wildberries.ru/ns/sm-supply/supply-manager/api/v1/supply/listSupplies',
headers=headers,
json=json_data,
)
# get updated cookies
updated_cookies = session.cookies.get_dict()
# check new cookies
if initial_cookies != updated_cookies:
print("Свежее печенье.")
print("Старье:", initial_cookies)
print("Новье:", updated_cookies)
else:
print("Свежее печенье не завозилось, расходимся.")
был бы рад если кто-нибудь объяснит как в принципе присваиваются куки
class Parent:
known_children = [] # список классов-потомков Parent
@staticmethod
def register(klass): # декоратор для регистрации классов-потомков
Parent.known_children.append(klass)
return klass
@classmethod
def can_handle(cls, data): # "эй, потомок, ты можешь себя создать из этих данных?"
raise NotImplementedError()
@staticmethod
def make(data): # создаёт экземпляр одного из потомков
for child in Parent.known_children:
if child.can_handle(data): # потомок согласился обработать данные?
return child(data) # вызываем конструктор класса-потомка
else: # относится к for ... in !
raise TypeError(f'Никто не знает, что делать с этим:\n{data!r}')
# тут остальная начинка класса
...
# а это пример потомка
@Parent.register # явная регистрация потомка через декоратор
# так удобнее, потому что так можно создавать промежуточных потомков,
# которые не будут реально использоваться - только в наследовании
class SomeChild(Parent):
@classmethod
def can_handle(cls, data):
return data.get('name', None) == 'SomeChild' # критерий для определения - наш случай или нет?
def __init__(self, data):
self.x = data['x']
self.y = data['y']
c = Parent.make({'name': 'SomeChild', 'x': 42, 'y': 69}) # создаст экземпляр SomeChild
print(c)
try:
Parent.make({'name': 'invalid'}) # потерпит неудачу
except TypeError as err:
print(err)
Нужно ли обычную форму обратной связи лендинга защищать от спам-ботов?
Если да, что можете посоветовать?
публиковать страницы, создавать иерархию страниц, чпу url, какой то слайдер с картинками
небольшое количество услуги в регионе
Нашли компанию, предлагает разработку сайта на WP или на Python+Django (дороже и дольше)