- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
class ProjectIssue(
UserAgentDetailMixin,
SubscribableMixin,
TodoMixin,
TimeTrackingMixin,
ParticipantsMixin,
SaveMixin,
ObjectDeleteMixin,
RESTObject,
):
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+4
class ProjectIssue(
UserAgentDetailMixin,
SubscribableMixin,
TodoMixin,
TimeTrackingMixin,
ParticipantsMixin,
SaveMixin,
ObjectDeleteMixin,
RESTObject,
):
0
/*
xdrv_96_blacklist.ino - Blacklist for Tasmota
SPDX-FileCopyrightText: 2022 Theo Arends
SPDX-License-Identifier: GPL-3.0-only
*/
#define USE_BLACKLIST
#ifdef USE_BLACKLIST
/*********************************************************************************************\
* Blacklist support
*
* Check language and user set latitude/longitude against blacklist table
\*********************************************************************************************/
#define XDRV_96 96
typedef struct {
int16_t latitude_tl; // - 8999 to 8999
int16_t longitude_tl; // -17999 to 17999
int16_t latitude_br;
int16_t longitude_br;
uint16_t lcid;
} tBlArray;
//const char BlacklistText[] PROGMEM = "Stop war - Free Ukrain|Stop war - Free Ukrain|";
const char BlacklistText[] PROGMEM = "Stop war, Free Ukrain";
// lat_tl lon_tl lat_br lon_br lcid
tBlArray BlArray[] { 5900, 3200, 5300, 4400, 1049, // Around Moscow
5450, 2633, 5280, 2900, 1049 // Around Minsk
};
uint8_t blist_show = 0;
void BListEverySecond(void) {
if (Rtc.utc_time < 1648771200) { // Only until 2022-04-01
if (0 == (TasmotaGlobal.uptime % 20)) { // Only every 20 seconds
if (TasmotaGlobal.power) { // Only if any power on
uint32_t latitude = Settings->latitude / 10000;
uint32_t longitude = Settings->longitude / 10000;
uint32_t count = sizeof(BlArray) / sizeof(tBlArray);
for (uint32_t i = 0; i < count; i++) {
// Currently only supports top-right quarter of the earth
if ((LANGUAGE_LCID == BlArray[i].lcid) && // Check language id
(latitude < BlArray[i].latitude_tl) && // Check user set latitude and longitude against table
(latitude > BlArray[i].latitude_br) &&
(longitude > BlArray[i].longitude_tl) &&
(longitude < BlArray[i].longitude_br)) {
// char bl_text[100];
// snprintf_P(bl_text, sizeof(bl_text), PSTR("Power0 0")); // Turn all power off - annoying
// snprintf_P(bl_text, sizeof(bl_text), PSTR("Restart 1")); // Restart - more annoying
// snprintf_P(bl_text, sizeof(bl_text), PSTR("Reset 1")); // Reset - disastrous
// ExecuteCommand(bl_text, SRC_IGNORE);
// char bl_text[100];
// AddLog(LOG_LEVEL_NONE, PSTR("**** %s ****"), GetTextIndexed(bl_text, sizeof(bl_text), i, BlacklistText));
AddLog(LOG_LEVEL_NONE, PSTR("**** %s ****"), BlacklistText);
blist_show = i +1; // Set GUI message id
break;
}
}
}
} else if (0 == (TasmotaGlobal.uptime % 10)) { // Only every 10 seconds
blist_show = 0; // Reset GUI message id after 10 seconds
}
}
}
void BListShow(bool json) {
if (blist_show) {
// char bl_text[100];
// WSContentSend_PD(PSTR("{s}**** %s ****{m}{e}"), GetTextIndexed(bl_text, sizeof(bl_text), blist_show -1, BlacklistText));
WSContentSend_P(PSTR("{s}**** %s ****{m}{e}"), BlacklistText);
}
}
/*********************************************************************************************\
* Interface
\*********************************************************************************************/
bool Xdrv96(uint8_t function) {
bool result = false;
switch (function) {
case FUNC_EVERY_SECOND:
BListEverySecond();
break;
#ifdef USE_WEBSERVER
case FUNC_WEB_SENSOR:
BListShow(0);
break;
#endif // USE_WEBSERVER
}
return result;
}
https://github.com/arendst/Tasmota/commit/98cbf2587a1a914bbd16996ebb48dd451d3da448
0
Телефоны
8 (800) 333-17-63
8 (495) 215-03-87
Email
[email protected]
[email protected]
Компания
ООО «ДДОС-ГВАРД»
Реквизиты
ИНН / КПП: 9204005780 / 616701001
ОГРН: 1149204010988
Техническая поддержка
Интересующий вас вопрос можно задать через онлайн-чат
Адрес
(фактический/юридический)
344019, г. Ростов-на-Дону, ул. Максима Горького, д. 276, этаж 5, офис 11.
Phone numbers
+55 114 673-34-74
+7 495 215-03-87
Email
[email protected]
[email protected]
Technical support
You can ask your question via live chat
Address
101 Rose Street South Lane, Edinburgh,
Scotland, UK, EH2 3JG
Ну и хули вы спите и вот эти всё ещё в бизнесе?
0
import docx
doc = docx.Document('F://PythonProjects//Trash//example.docx')
paras = doc.paragraphs
name = input()
for para in paras:
para = para.text.split(' ')
for word in para:
//'NAME,' - строка в исходном файле
if word == 'NAME,':
word = name + ','
para = ' '.join(para)
Вуду-программирование. "Если я присвою переменной ссылку на объект, а потом присвою её же другую ссылку, то первый объект должен замениться на второй по всей программе."
0
int похуй = 0;
string похуйПлюсПохуйСтр = "похуй+похуй = ";
Console.WriteLine(похуйПлюсПохуйСтр + (похуй + похуй));
Для ВП
0
#define CONSTRUCT_JUMP(name_, opcode_) else if(mnemonic.name == #name_) \
subcompileMnemonic(mnemonic, {\
{constructDescription(CONSTANT), opcode_},\
{constructDescription(LABEL), opcode_}})
CONSTRUCT_JUMP(JMP, JMP);
CONSTRUCT_JUMP(JE, JZ);
CONSTRUCT_JUMP(JZ, JZ);
CONSTRUCT_JUMP(JNZ, JNZ);
CONSTRUCT_JUMP(JNE, JNZ);
CONSTRUCT_JUMP(JG, JG);
CONSTRUCT_JUMP(JNLE, JG);
CONSTRUCT_JUMP(JNLZ, JG);
CONSTRUCT_JUMP(JLE, JNG);
CONSTRUCT_JUMP(JLZ, JNG);
CONSTRUCT_JUMP(JNG, JNG);
CONSTRUCT_JUMP(JGE, JGZ);
CONSTRUCT_JUMP(JGZ, JGZ);
CONSTRUCT_JUMP(JNL, JGZ);
CONSTRUCT_JUMP(JNGZ, JL);
CONSTRUCT_JUMP(JNGE, JL);
CONSTRUCT_JUMP(JL , JL);
CONSTRUCT_JUMP(JB, JB);
CONSTRUCT_JUMP(JNAE, JB);
CONSTRUCT_JUMP(JNAZ, JB);
CONSTRUCT_JUMP(JC, JB);
CONSTRUCT_JUMP(JNB, JNB);
CONSTRUCT_JUMP(JAE, JNB);
CONSTRUCT_JUMP(JAZ, JNB);
CONSTRUCT_JUMP(JNC, JNB);
CONSTRUCT_JUMP(JBE, JBZ);
CONSTRUCT_JUMP(JBZ, JBZ);
CONSTRUCT_JUMP(JNA, JBZ);
CONSTRUCT_JUMP(JA, JA);
CONSTRUCT_JUMP(JNBE, JA);
CONSTRUCT_JUMP(JNBZ, JA);
CONSTRUCT_JUMP(CALL, CALL);
#undef CONSTRUCT_JUMP
0
#define CONSTRUCT_JUMP(name_, opcode_) else if(mnemonic.name == #name_) \
subcompileMnemonic(mnemonic, {\
{constructDescription(CONSTANT), opcode_},\
{constructDescription(LABEL), opcode_}})
CONSTRUCT_JUMP(JMP, JMP);
CONSTRUCT_JUMP(JE, JZ);
CONSTRUCT_JUMP(JZ, JZ);
CONSTRUCT_JUMP(JNZ, JNZ);
CONSTRUCT_JUMP(JNE, JNZ);
CONSTRUCT_JUMP(JG, JG);
CONSTRUCT_JUMP(JNLE, JG);
CONSTRUCT_JUMP(JNLZ, JG);
CONSTRUCT_JUMP(JLE, JNG);
CONSTRUCT_JUMP(JLZ, JNG);
CONSTRUCT_JUMP(JNG, JNG);
CONSTRUCT_JUMP(JGE, JGZ);
CONSTRUCT_JUMP(JGZ, JGZ);
CONSTRUCT_JUMP(JNL, JGZ);
CONSTRUCT_JUMP(JNGZ, JL);
CONSTRUCT_JUMP(JNGE, JL);
CONSTRUCT_JUMP(JL , JL);
CONSTRUCT_JUMP(JB, JB);
CONSTRUCT_JUMP(JNAE, JB);
CONSTRUCT_JUMP(JNAZ, JB);
CONSTRUCT_JUMP(JC, JB);
CONSTRUCT_JUMP(JNB, JNB);
CONSTRUCT_JUMP(JAE, JNB);
CONSTRUCT_JUMP(JAZ, JNB);
CONSTRUCT_JUMP(JNC, JNB);
CONSTRUCT_JUMP(JBE, JBZ);
CONSTRUCT_JUMP(JBZ, JBZ);
CONSTRUCT_JUMP(JNA, JBZ);
CONSTRUCT_JUMP(JA, JA);
CONSTRUCT_JUMP(JNBE, JA);
CONSTRUCT_JUMP(JNBZ, JA);
CONSTRUCT_JUMP(CALL, CALL);
#undef CONSTRUCT_JUMP
0
boolean isEven(int number) {
while (number > 2) {
number = number - 2;
}
if (number == 2) {
return true;
} else {
return false;
}
}
0
Писать однострочный код это плохо? А если в одном файле совместить серверную и клиентскую часть? Пример аддона из Garry's Mod https://steamcommunity.com/sharedfiles/filedetails/?id=2754127067
AddCSLua("cl_init.lua")
if istable( xdestore ) then if xdestore.Menu then xdestore.Menu:Remove() end if xdestore.Unlock then xdestore.Unlock:Remove() end
if xdestore.Namer then xdestore.Namer:Remove() end if xdestore.Lock then xdestore.Lock:Remove() end end xdestore = {} xdestore.Players = {}
util.AddNetworkString( "XDEST_MenuS2COpen" ) util.AddNetworkString( "XDEST_MenuS2CClose" ) util.AddNetworkString( "XDEST_SendRes" )
util.AddNetworkString( "XDEST_MenuS2CUpdate" ) util.AddNetworkString( "XDEST_MenuS2CResult" ) util.AddNetworkString( "XDEST_MenuC2SClose" )
util.AddNetworkString( "XDEST_LockReset" ) util.AddNetworkString( "XDEST_MenuC2SAction" ) util.AddNetworkString( "XDEST_SendSnd" ) util.AddNetworkString( "XDEST_SendHint" )
xdestore.AmmoMdl = {
[ "AR2" ] = "models/items/combine_rifle_cartridge01.mdl",
[ "AR2AltFire" ] = "models/items/combine_rifle_ammo01.mdl",
[ "Pistol" ] = "models/items/boxsrounds.mdl",
[ "SMG1" ] = "models/items/boxmrounds.mdl",
[ "357" ] = "models/items/357ammo.mdl",
[ "XBowBolt" ] = "models/items/crossbowrounds.mdl",
[ "Buckshot" ] = "models/items/boxbuckshot.mdl",
[ "RPG_Round" ] = "models/weapons/w_missile_closed.mdl",
[ "SMG1_Grenade" ] = "models/items/ar2_grenade.mdl",
[ "Grenade" ] = "models/items/grenadeammo.mdl",
[ "slam" ] = "models/weapons/w_slam.mdl"
}
xdestore.NonSWEP = {
[ "weapon_357" ] = "models/weapons/w_357.mdl",
[ "weapon_pistol" ] = "models/weapons/w_pistol.mdl",
[ "weapon_bugbait" ] = "models/weapons/w_bugbait.mdl",
[ "weapon_crossbow" ] = "models/weapons/w_crossbow.mdl",
[ "weapon_crowbar" ] = "models/weapons/w_crowbar.mdl",
[ "weapon_frag" ] = "models/weapons/w_grenade.mdl",
[ "weapon_physcannon" ] = "models/weapons/w_physics.mdl",
[ "weapon_ar2" ] = "models/weapons/w_irifle.mdl",
[ "weapon_rpg" ] = "models/weapons/w_rocket_launcher.mdl",
[ "weapon_slam" ] = "models/weapons/w_slam.mdl",
[ "weapon_shotgun" ] = "models/weapons/w_shotgun.mdl",
[ "weapon_smg1" ] = "models/weapons/w_smg1.mdl",
[ "weapon_stunstick" ] = "models/weapons/w_stunbaton.mdl",
[ "weapon_alyxgun" ] = "models/weapons/w_alyx_gun.mdl",
[ "weapon_annabelle" ] = "models/weapons/w_annabelle.mdl",
[ "weapon_physgun" ] = "models/weapons/w_physics.mdl"
}
xdestore.ValidAct = { [ "Take" ] = true, [ "Move" ] = true, [ "Store" ] = true, [ "Rename" ] = true, [ "TakeAll" ] = true, [ "Split" ] = true, [ "Lock" ] = true, [ "Unlock" ] = true }
xdestore.ActToNum = { "Take", "Move", "Store", "TakeAll", "Rename", "Split", "Lock", "Unlock" }
xdestore.LockType = { "Simple", "Complex", "Question", "Key Weapon", "Group", "Personal" }
net.Receive( "XDEST_MenuS2COpen", function() local int = net.ReadFloat() local tab = net.ReadString() local con = net.ReadString()
local ent = net.ReadEntity() xdestore:OpenMenu( ply, int, tab, con, ent ) end )
net.Receive( "XDEST_MenuS2CClose", function() if xdestore.Menu then xdestore.Menu:Remove() end if xdestore.Namer then xdestore.Namer:Remove() end
if xdestore.Lock then xdestore.Lock:Remove() end if xdestore.Unlock then xdestore.Unlock:Remove() end end )
net.Receive( "XDEST_MenuS2CUpdate", function()
local tab = util.JSONToTable( net.ReadString() ) local con = util.JSONToTable( net.ReadString() ) local aa = net.ReadBool() local bb = net.ReadBool()
if IsValid( xdestore.Menu ) then xdestore.Menu.V_DataStat = tab xdestore.Menu.V_DataCont = con xdestore.Menu:UpdateItems( aa, bb ) end
end )
net.Receive( "XDEST_MenuC2SClose", function( len, ply ) if len > 32 or !IsValid( ply ) then return end
local int = net.ReadFloat() if IsValid( ply ) and ply:IsPlayer() and !ply:IsBot() and isnumber( int ) then xdestore:CloseMenu( ply, int ) end
end )
net.Receive( "XDEST_MenuC2SAction", function( len, ply ) if len >= 4096 or !IsValid( ply ) then return end
if isnumber( ply.XDEST_Cool ) and ply.XDEST_Cool > CurTime() then xdestore:SendHint( ply, "You are doing too fast!", "resource/warning.wav", 0 ) end
ply.XDEST_Cool = CurTime()+0.25 if !IsValid( ply:GetNWEntity( "XDEST_Ent" ) ) or ply:GetNWEntity( "XDEST_Ent" ) == Entity( 0 ) then return end local self = ply:GetNWEntity( "XDEST_Ent" )
if ( ( !isstring( self.Base ) or self.Base != "xdest_base" ) and self:GetClass() != "xdest_base" and self:GetClass() != "weapon_xdest" )
or !isstring( self.XDEST_Data ) or !isstring( self.XDEST_Contain ) then return end
local act = net.ReadFloat() local str = net.ReadString() if !isnumber( act ) then return end act = math.Round( act )
if !isstring( str ) then str = "_" end if isstring( xdestore.ActToNum[ act ] ) then act = xdestore.ActToNum[ act ] else return end xdestore:SlotAction( ply, self, act, str )
end )
net.Receive( "XDEST_MenuS2CResult", function() local ply = LocalPlayer() local yes = net.ReadBool() if IsValid( xdestore.Unlock ) then xdestore.Unlock:XDE_Result( yes ) end end )
net.Receive( "XDEST_LockReset", function() local ent = net.ReadEntity() if IsValid( ent ) and ent != Entity( 0 ) then ent.XDE_Pass = nil end end )
net.Receive( "XDEST_SendSnd", function() local str = net.ReadString() if !isstring( str ) or str == "!V" then return end surface.PlaySound( str ) end )
net.Receive( "XDEST_SendRes", function() local str = net.ReadString() local ply = LocalPlayer() local ent = net.ReadEntity() if !IsValid( ent )
or ent == Entity( 0 ) or !isstring( str ) or str == "" then return end if !isstring( ent.XDE_Pass ) then xdestore:SendHint( nil, "Access granted.", "", 0 ) end ent.XDE_Pass = str end )
net.Receive( "XDEST_SendHint", function() local txt = net.ReadString() local snd = net.ReadString() local typ = net.ReadFloat() xdestore:SendHint( nil, txt, snd, typ ) end )
+1
#pragma aux __cdecl "_*" \
parm caller [ ] \
value struct float struct routine [eax] \
modify [eax ecx edx]