- 1
- 2
- 3
Ещё раз о «лицензиях»
https://sun1-95.userapi.com/LR_BeKxXR6XXDG2k-dpOCzUf63zRdc6491VvIg/1J2iS0o6d_Y.jpg
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−2
Ещё раз о «лицензиях»
https://sun1-95.userapi.com/LR_BeKxXR6XXDG2k-dpOCzUf63zRdc6491VvIg/1J2iS0o6d_Y.jpg
Кому они нужны?
Это имеет какую-то юридическую силу?
Что будет, если нарушить? Пацаны не поймут?
0
<?php
/* -= Developed by [email protected] =- */
// -= О П Ц И И =-
require("config.php");
// Технические настройки скрипта
header('Content-Type: text/html; charset=utf-8');
ini_set('memory_limit', '-1');
// -=-=-=-=-=-=-=-
// -= Функции инкапсуляции технических аспектов =-
// Функция печати логов, добавляет "date n time now" и перенос строки
function printLog($text) { echo sprintf("[%s] %s", date("Y-m-d H:i:s"), $text) . "\n"; }
// Функция преобразования текста в ключ индекса, убирает пробелы, переводит в верхний регистр и добавляет префикс "_"
function str2idx($str) { return "_" . strtoupper( str_replace(' ', '', (string)$str) ); }
// Функция генерации ассоциативного массива индексов, использует str2idx
function genIdxs($array, $val_key, $idx_keys, $filter_func=NULL) {
$idxs = [];
foreach ($array as $item) {
if ($filter_func && !$filter_func($item)) { continue; }
if (is_string($idx_keys)){
foreach (preg_split("/\s?;\s?/", $item[$idx_keys]) as $idx) {
if ($idx) { $idxs[str2idx($idx)] = str2idx((string)$item[$val_key]); }
} unset($idx);
} else {
foreach ($idx_keys as $idx_key) {
foreach (preg_split("/\s?;\s?/", $item[$idx_key]) as $idx) {
if ($idx) { $idxs[str2idx($idx)] = str2idx((string)$item[$val_key]); }
}
} unset($idx_key);
}
} unset($item);
return $idxs;
}
// Функция сравнения изображений
function compareImages($image1, $image2) {
$compare_result = $image1->compareImages($image2, IMAGICK_METRIC);
return (int)$compare_result[1] > THRESHOLD_SIMILARITY_VALUE;
}
// Функция исполнения SQL-запросов в БД, инкапсулирующая все ужасы взаимодействия с БД MySQL на PHP
function execSQL($sql, $mode="fetch_assoc") {
// Проверяем коннект к БД, в случае проблем - пытаемся переподключ
if (!$GLOBALS["mysqli"] || $GLOBALS["mysqli"]->connect_errno) {
$GLOBALS["mysqli"] = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if ($GLOBALS["mysqli"]->connect_errno) {
throw new Exception("Can't connect to DB: (".$GLOBALS["mysqli"]->connect_errno.") ".$GLOBALS["mysqli"]->connect_error);
}
printf("default charset: %s\n", $GLOBALS["mysqli"]->character_set_name());
/* изменение набора символов на utf8 */
if (!$GLOBALS["mysqli"]->set_charset("utf8")) {
throw new Exception("set charset utf8 error: %s\n", $GLOBALS["mysqli"]->error);
} else { printf("current charset: %s\n", $GLOBALS["mysqli"]->character_set_name()); }
}
$_result = $GLOBALS["mysqli"]->query($sql);
if (!$_result) { printLog("SQL ERROR: ". $GLOBALS["mysqli"]->error . "\n executable SQL: " . $sql . "\n\n"); }
if (is_bool($_result)) { return $_result; }
elseif ($mode==="num_rows") { return $_result->num_rows; }
elseif ($mode==="fetch_assoc") {
$result = [];
while($row = $_result->fetch_assoc()) {
reset($row);
$key = str2idx($row[key($row)]);
$result[$key] = $row;
} unset($row);
return $result;
}
throw new Exception("Recieved unexpected mode (".$mode.") or query result by execute SQL: ".$sql );
}
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// -= Старт работы скрипта =-
$start = microtime(true);
printLog("Updater script started");
// Инициализация глобальных переменных, счетчиков
$GLOBALS["mysqli"] = NULL;
$kingsilk_offers_count = 0;
// Проверка хранилища фотографий
if (!is_dir(IMAGES_PATH)) throw new Exception("ERROR: images path not found!");
$IMAGES_FULL_PATH = IMAGES_PATH . IMAGE_PATH_PREFIX;
if (!is_dir($IMAGES_FULL_PATH)) mkdir($IMAGES_FULL_PATH);
// -=-=-=-=-=-=-=-=-=-=-=-=-=-
// -= Получение YML-данных от поставщика Кингсилк, формирование индексов =-
$yml_catalog = new SimpleXMLElement(
file_get_contents(YML_URL_KINGSILK)
);
// Формирование индекса импортируемых категорий по id'шнику категории поставщика
$GLOBALS['cats_outer_idxs'] = [];
foreach ($yml_catalog->categories->category as $cat){
$GLOBALS['cats_outer_idxs'][str2idx((string)$cat["id"])] = $cat;
} unset($cat);
// Группировка предложений поставщика по схожести картинок,
// формирование древовидного индекса по md5 хэшу картинок
$offers_groups_idxs = [];
foreach ($yml_catalog->offers->offer as $offer) {
// Отсеиваем не опубликованные товары
if ((string)$offer["available"] != "true"){
continue;
}
$kingsilk_offers_count++;
$hash = NULL;
- = А ЧО ТУТ НЕЛЬЯ ПОСТИТЬ ПОЛНЫЙ КОД = - ???
===~ ТАМ ДОХРЕНА ЕЩЁ ~==
P.S - вот как кодят питонисты на php
продолжение: <a href="https://raw.githubusercontent.com/Siyet/goods-updater-oc3-php7/master/updater.php">Перейти</a>
+2
if thr < 0.1 then
one()
elseif thr > 0.1 and thr < 0.2 then
one()
two()
elseif thr > 0.2 and thr < 0.3 then
one()
two()
three()
elseif thr > 0.3 and thr < 0.4 then
one()
two()
three()
four()
elseif thr > 0.4 and thr < 0.5 then
one()
two()
three()
four()
five()
elseif thr > 0.5 and thr < 0.6 then
one()
two()
three()
four()
five()
six()
elseif thr > 0.6 and thr < 0.7 then
one()
two()
three()
four()
five()
six()
seven()
elseif thr > 0.7 and thr < 0.8 then
one()
two()
three()
four()
five()
six()
seven()
eight()
elseif thr > 0.8 and thr < 0.9 then
one()
two()
three()
four()
five()
six()
seven()
eight()
nine()
elseif thr > 0.9 and thr < 1 then
one()
two()
three()
four()
five()
six()
seven()
eight()
nine()
ten()
elseif thr == 1 then
one()
two()
three()
four()
five()
six()
seven()
eight()
nine()
ten()
eleven()
end
........
function one()
screen.setColor(0, 255, 0)
screen.drawRectF(12, 53, 4, 5)
end
function two()
screen.setColor(0, 255, 0)
screen.drawRectF(16, 53, 4, 5)
end
function three()
screen.setColor(0, 255, 0)
screen.drawRectF(20, 53, 4, 5)
end
function four()
screen.setColor(0, 255, 0)
screen.drawRectF(24, 53, 4, 5)
end
Говнокод для рисования полоски загрузки
+2
private static final String CITY_PREFIX = "г.";
private static final Map<String, String> CITIES = new HashMap<>() {
{
put("В.Новгород", "Великий Новгород");
put("Н.Новгород", "Нижний Новгород");
put("В. Новгород", "Великий Новгород");
put("Н. Новгород", "Нижний Новгород");
put("Великий Новгород", "Великий Новгород");
put("Нижний Новгород", "Нижний Новгород");
put("Петербург", "Санкт-Петербург");
put("Челны", "Набережные Челны");
put("Уренгой", "Новый Уренгой");
put("ПсковS", "Псков");
}
};
private static final Map<String, String> CITIES_WITH_PREFIX = new HashMap<>() {
{
put("г.Пушкино", "Пушкино");
}
};
ну просто офигенный мапинг
0
Тестовый тред, можно игнорить
+1
$data = [];
$firstGenreId = Genre::where('homepage_filter_band', 1)->first()->id;
$bandSearch = [
'limit' => request('limit') ?? 6,
'genre' => $firstGenreId,
'category' => BandCategory::where('homepage_filter', 1)->first()->id,
'status' => 1
];
$subGenres = Genre::getGenresByCategory($bandSearch['genre']);
$bandSearch['genre'] = [$bandSearch['genre']];
foreach ($subGenres as $subGenre){
array_push($bandSearch['genre'], $subGenre->id);
}
$data['bandsGenre']['bands'] = Band::getBandsLimitListByGenre($bandSearch);
$data['bandsGenre']['filters'] = Genre::isExistGenreByBandFilter();
$data['bandsGenre']['active_filter'] = $firstGenreId;
$data['bandsGenre']['type'] = 'genre';
$data['bandsCategories']['bands'] = Band::getBandsLimitListByCategory($bandSearch);
$data['bandsCategories']['filters'] = BandCategory::isExistCategoryByBandFilter();
$data['bandsCategories']['active_filter'] = $bandSearch['category'];
$data['bandsCategories']['type'] = 'category';
$data['bandsStatus']['bands'] = Band::getBandsLimitListByStatus($bandSearch);
$data['bandsStatus']['active_filter'] = 1;
$data['bandsStatus']['filters'] = (object)[
0 => [
'id' => 1,
'name' => trans('validation-custom.newest')
],
1 => [
'id' => 2,
'name' => trans('validation-custom.lastUpdated')
]
];
$data['bandsStatus']['type'] = 'status';
$firstGenreId = Genre::where('homepage_filter_musician', 1)->first()->id;
$firstInstrumentId = Instrument::where('homepage_filter', 1)->first()->id;
$musicianSearch = [
'limit' => request('limit') ?? 6,
'genre' => $firstGenreId,
'instrument' => $firstInstrumentId,
'status' => 1
];
$subGenres = Genre::getGenresByCategory($musicianSearch['genre']);
$musicianSearch['genre'] = [$musicianSearch['genre']];
foreach ($subGenres as $subGenre){
array_push($musicianSearch['genre'], $subGenre->id);
}
$subInstruments = Instrument::getInstrumentsByCategory($musicianSearch['instrument']);
$musicianSearch['instrument'] = [$musicianSearch['instrument']];
foreach ($subInstruments as $subInstrument){
array_push($musicianSearch['instrument'], $subInstrument->id);
}
$data['musiciansGenre']['musicians'] = User::getMusiciansLimitListByGenre($musicianSearch);
$data['musiciansGenre']['filters'] = Genre::isExistGenreByFilter();
$data['musiciansGenre']['active_filter'] = $firstGenreId;
$data['musiciansGenre']['type'] = 'genre';
$data['musiciansInstrument']['musicians'] = User::getMusiciansLimitListByInstrument($musicianSearch);
$data['musiciansInstrument']['filters'] = Instrument::isExistInstrumentByFilter();
$data['musiciansInstrument']['active_filter'] = $firstInstrumentId;
$data['musiciansInstrument']['type'] = 'instrument';
$data['musiciansStatus']['musicians'] = User::getMusiciansLimitListByStatus($musicianSearch);
$data['musiciansStatus']['active_filter'] = 1;
$data['musiciansStatus']['filters'] = (object)[
0 => [
'id' => 1,
'name' => trans('validation-custom.newest')
],
1 => [
'id' => 2,
'name' => trans('validation-custom.lastUpdated')
]
];
$data['musiciansStatus']['type'] = 'status';
return response()->json($data, 200);
Кажуть - шота сторінка довго грузиться :)
0
#include <stdio.h>
#include <stddef.h>
#include <stdlib.h>
#include <stdint.h>
#define GEN_NAME(type) struct myvec_ ## type
#define MK_VEC_TYPE(type) GEN_NAME(type) {size_t sz; type arr[];};
#define MK_VEC_NEW(type) \
GEN_NAME(type) *myvec_new_ ## type (size_t num) \
{ \
struct myvec_ ## type *tmp = malloc(sizeof(type) * num); \
if (tmp == NULL) \
{ \
return NULL; \
} \
tmp->sz = num; \
return tmp; \
}
#define MK_VEC_DELETE(type) \
void myvec_delete_ ## type (GEN_NAME(type) *v) \
{ \
free(v); \
}
#define MK_VEC_GET(type) \
type myvec_get_ ## type (GEN_NAME(type) *v, size_t pos) \
{ \
if(pos < v->sz) \
{ \
return v->arr[pos]; \
} \
else \
{ \
exit(-1); \
} \
}
// исключения - говно
#define MK_VEC_SET(type) \
void myvec_set_ ## type (GEN_NAME(type) *v, size_t pos, type val) \
{ \
if(pos < v->sz) \
{ \
v->arr[pos] = val; \
} \
else \
{ \
exit(-1); \
} \
}
#define MK_VEC_GETSZ(type) \
size_t myvec_getsz_ ## type (GEN_NAME(type) v) \
{ \
return v.sz; \
}
#define MK_SHIT(type) \
MK_VEC_TYPE(type) \
MK_VEC_NEW(type) \
MK_VEC_DELETE(type) \
MK_VEC_GET(type) \
MK_VEC_GETSZ(type) \
MK_VEC_SET(type)
MK_SHIT(int)
MK_SHIT(float)
MK_SHIT(double)
#define test(a) _Generic(a, int : 1, GEN_NAME(int) : 2, default : 0)
#define MTD_C(val,mtd) _Generic( val,\
GEN_NAME(int): myvec_ ## mtd ##_int, \
GEN_NAME(float): myvec_ ## mtd ##_float, \
GEN_NAME(double): myvec_ ## mtd ##_double, \
default: 0) // хуй там!
#define GET(vec,pos) MTD_C(vec,get)(&vec,pos)
#define SET(vec, pos, val) MTD_C(vec,set)(&vec,pos,val)
#define GETSZ(vec) MTD_C(vec,getsz)(vec)
int main(void)
{
GEN_NAME(int) *vec1 = myvec_new_int(10);
SET(*vec1, 0, 123);
size_t size = GETSZ(*vec1);
printf("vector size is %zu\n", size);
printf("vector vec1[0] is %d\n", GET(*vec1,0));
return 0;
}
Какое ООП)))
+2
def __gc(self, state):
userdata = self.lib.luaL_testudata(self.state, 1, b'python.object')
if userdata:
obj_ptr = (c.cast(userdata, c.POINTER(c.py_object))).contents
if obj_ptr:
c.pythonapi.Py_DecRef(obj_ptr)
return 0
def push_object(self, obj):
userdata = self.lib.lua_newuserdata(self.state, c.sizeof(c.py_object))
(c.cast(userdata, c.POINTER(c.py_object)))[0] = c.py_object()
if self.lib.luaL_newmetatable(self.state, b'python.object'):
self.gc_thunk = c.CFUNCTYPE(c.c_int, c.c_void_p)(self.__gc)
self.lib.lua_pushcclosure(self.state, self.gc_thunk, 0)
self.lib.lua_setfield(self.state, -2, b'__gc')
self.lib.lua_pushstring(self.state, b'protected')
self.lib.lua_setfield(self.state, -2, b'__metatable')
self.lib.lua_setmetatable(self.state, -2)
obj_ptr = c.py_object(obj)
c.pythonapi.Py_IncRef(obj_ptr)
(c.cast(userdata, c.POINTER(c.py_object)))[0] = obj_ptr
Как скрестить ужа с ежом.
+1
class MyEvents extends \Event\EventsHandler {
static $key = 1;
public function BeforeQuery() {
Timer::start(self::$key);
}
public function AfterQuery() {
Timer::step(self::$key++);
if(Timer::$last['different'] > 1) {
$debug_backtrace = debug_backtrace();
foreach($debug_backtrace as $k=>$v) {
if($v['function'] == 'q') {
$error = "QUERY: ".$v['args'][0]."\n".
"file: ".$v['file']."\n".
"line: ".$v['line']."\n".
"date: ".date("Y-m-d H:i:s")."\n".
"===================================";
file_put_contents('./logs/slowquery.log',$error."\r\n",FILE_APPEND);
break;
}
}
}
}
public function ShutDownSystem() {
echo microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];
}
}
Event::setEventHandler('MyEvents');
q("SELECT * FROM `table` ORDER BY RAND()");
q("SELECT NOW()");
echo Timer::result();
Измеряем время запросов и время загрузки страницы
https://school-php.com/tricks/23/dokumentatsiya-po-fw
−1
#!/usr/bin/python3
# Spammer v3.2
# Author: cludeex
import os, random, time
try:
import requests
except:
im = input("Установить недостоющие библиотеки? (y/n) ")
if im == "y":
os.system("python -m pip install requests; spamer")
else:
print("Отменено")
exit()
def logo():
os.system('cls' if os.name=='nt' else 'clear')
print(color.BOLD+color.GREEN+" ___ ___ _ __ __ __ __ ___ ___\n / __| _ \\/_\\ | \\/ | \\/ | __| _ \\\n \\__ \\ _/ _ \\| |\\/| | |\\/| | _|| /\n |___/_|/_/ \\_\\_| |_|_| |_|___|_|_\\\n\n Spammer: github.com/cludeex\n"+color.END)
def update():
logo()
up = input(color.BOLD+color.BLUE+"Вы уверены, что хотите обновить? "+color.END+"(y/n) ")
if up == "y":
os.system("rm -rf spammer && git clone https://github.com/cludeex/spammer && python ~/spammer/install.py")
else:
print("Отменено")
main(2)
def main(t):
time.sleep(t)
logo()
print("[1] СМС СПАМЕР.")
print("[2] ОБНОВИТЬ СПАМЕР.")
print("[3] ВЫХОД.\n")
input1 = input(color.BOLD+color.BLUE+"Введите номер пункта: "+color.END)
try:
requests.get("http://google.com", verify=True)
except:
logo()
print(color.BOLD+color.RED+"[!] Нет интернет соединения.")
main(2)
if input1 == "1":
logo()
_phone = input(color.BOLD+color.BLUE+"Введите номер телефона: "+color.END)
if _phone == "":
main(0)
if len(_phone) == 11 or len(_phone) == 12 or len(_phone) == 13:
pass
else:
logo()
print(color.BOLD+color.RED+"[!] Неправильный номер.")
main(2)
if _phone[0] == "+":
_phone = _phone[1:]
if _phone[0] == "8":
_phone = "7"+_phone[1:]
if _phone[0] == "9":
_phone = "7"+_phone
_name = ""
for x in range(12):
_name = _name + random.choice(list("123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM"))
password = _name + random.choice(list("123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM"))
username = _name + random.choice(list("123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM"))
_phone9 = _phone[1:]
_email = _name+"@gmail.com"
email = _email
logo()
print("Телефон: "+color.BOLD+color.BLUE+_phone+color.END+"\nСпамер запущен.\nЧтобы остановить - нажмите Ctrl + Z")
while True:
if _phone[0] == "7":
# далее идёт дохуя try: post except: pass
class color:l
RED = '\033[91m'
GREEN = '\033[92m'
YELLOW = '\033[93m'
BLUE = '\033[94m'
MAGENTA = '\033[95m'
CYAN = '\033[96m'
WHITE = '\033[97m'
GREY = '\033[90m'
BOLD = '\033[1m'
ITALIC = '\033[3m'
UNDERLINE = '\033[4m'
END = '\033[0m'
if __name__ == "__main__":
main(0)
ps: код преднозначен для termux