-
Лучший говнокод
- В номинации:
-
- За время:
-
-
+1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
```rust
impl actix_web::FromRequest for Token {
type Error = ApiError;
type Future = Pin<Box<dyn Future<Output = Result<Self, Self::Error>>>>;
type Config = ();
fn from_request(req: &actix_web::HttpRequest, _: &mut actix_web::dev::Payload) -> Self::Future {
match req.extensions().get::<Option<Self>>().map(Clone::clone) {
Some(Some(v)) => Box::pin(async { Ok(v) }),
None | Some(None) => {
let header = req.headers().get("Authorization").map(Clone::clone);
Box::pin(
web::Data::<Pool>::extract(req)
.map_err(ApiError::from)
.and_then(move |pool| {
async move {
let header = header.ok_or(ApiError::authorization_required())?;
let auth = header.to_str()?;
let uuid = Uuid::parse_str(auth)
.map_err(|_| ApiError::authorization_bad_token())?;
let (_, token) = Self::find(&uuid, pool.get_conn().await?).await?;
let token = token.ok_or(ApiError::authorization_bad_token())?;
Ok(token)
}
})
.boxed_local()
)
}
}
}
}
Было принято решение создать Authorization middleware, который при каждом запросе авторизировал пользователя, если есть нужный хидер. В связи с тем, что некоторые роуты достают модель через ручной экстрактор, пришлось дописать эту хуйню (Второе условие никогда не будет выполнена вообще судя по всему).
1rei,
18 Июня 2020
-
+1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
interface PostRepository
{
public function save(Post $model);
}
class Post
{
protected $id;
protected $title;
protected $content;
public function setId(int $id)
{
$this->id = $id;
}
public function getId(): ?int
{
return $this->id;
}
public function setTitle(string $title)
{
$this->title = $title;
}
public function getTitle(): string
{
return $this->title ?: '';
}
public function setContent(string $content)
{
$this->content = $content;
}
public function getContent(): string
{
return $this->content ?: '';
}
}
Блядь, до чего ж отвратительный код. Говёность «PHP», тщательно и с извращённой любовью смешанная с ЙАЖАвским бойлерплейтом. Омерзительно.
https://habr.com/ru/post/505400/
>>> Как должны выглядеть модели?
gost,
08 Июня 2020
-
+1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
#ifndef CONIO_H
#define CONIO_H
#ifdef __cplusplus
extern "C" {
#endif
#include <ncurses.h>
#define BLUE COLOR_BLUE
#define RED COLOR_RED
#define WHITE COLOR_WHITE
#define BLACK COLOR_BLACK
#define MAGENTA COLOR_MAGENTA
#define CYAN COLOR_CYAN
#define GREEN COLOR_GREEN
#define YELLOW COLOR_YELLOW
#define LIGHTBLUE COLOR_BLUE
#define LIGHTRED COLOR_RED
#define LIGHTGREEN COLOR_GREEN
#undef getch
void init_screen(void);
void gotoxy(int x,int y);
void clrscr(void);
void clreol(void);
int kbhit(void);
void textbackground(int color);
void textcolor(int color);
void delline(void);
void window(int left, int top, int right, int bottom);
int getch(void);
int getche(void);
int wherex(void);
int wherey(void);
int cputs(char*);
char* cgets(char*);
int cprintf(const char*, ...);
int cscanf(const char*, ...);
#ifdef __cplusplus
}
#endif
#endif /* CONIO_H */
УЕЕЕЕЕЕЕЕЕЕ!!!!!!
ЕСТЬ КОНИО ПОД ПРЫЩИ!!!
https://github.com/nowres/conio-for-linux
OCETuHCKuu_nemyx,
08 Июня 2020
-
+1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
struct Ololo: Comparable {
let value: Int
static func < (lhs: Ololo, rhs: Ololo) -> Bool {
return lhs.value < rhs.value
}
static func < (lhs: Ololo, rhs: Ololo) -> String {
if lhs.value < rhs.value {
return "LESS"
} else if lhs.value > rhs.value {
return "MORE"
} else {
return "EQUAL"
}
}
}
let ololo1 = Ololo(value: 100)
let ololo2 = Ololo(value: 200)
let bool: Bool = ololo1 < ololo2
let string: String = ololo1 < ololo2
А в плюсах можно в operator> любую херь вернуть © jojaxon
Наверное, я поторопился, когда сказал, что крестобляди будет в свифте тесно.
Desktop,
06 Июня 2020
-
+1
- 1
- 2
https://infostart.ru/public/72175/
1C.Net:Предприятие + DirectX = 3D-графика на формах 1С:Предприятие
Зачем? Зачем?
j123123,
04 Июня 2020
-
+1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
namespace Test;
/**
* MyTest (test/mytest.zep)
*/
class MyTest
{
public function someMethod()
{
/* Variables must be declared */
var myArray;
int i = 0, length;
/* Create an array */
let myArray = ["hello", 0, 100.25, false, null];
/* Count the array into a 'int' variable */
let length = count(myArray);
/* Print value types */
while i < length {
echo typeof myArray[i], "\n";
let i++;
}
return myArray;
}
}
Язык программирования «Зефир».
https://docs.zephir-lang.com/0.12/en/introduction
TEH3OPHblu_nemyx,
03 Июня 2020
-
+1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int perevod(char a)
{
switch (a)
{
case 'A': {return 1; break;}
case 'B': {return 2; break;}
case 'C': {return 3; break;}
case 'D': {return 4; break;}
case 'E': {return 5; break;}
case 'F': {return 6; break;}
case 'G': {return 7; break;}
case 'H': {return 8; break;}
}
return 0;
}
int proverka(char a)
{
switch (a)
{
case '1': {return 1; break;}
case '2': {return 2; break;}
case '3': {return 3; break;}
case '4': {return 4; break;}
case '5': {return 5; break;}
case '6': {return 6; break;}
case '7': {return 7; break;}
case '8': {return 8; break;}
}
return 0;
}
int main()
{
string s;
cin >> s;
int x1, x2, y1, y2;
x1=perevod(s[0]);
x2=perevod(s[3]);
y1=proverka(s[1]);
y2=proverka(s[4]);
if(s.length() != 5 || x1 == 0 || x2 == 0 || y1 == 0 || y2 == 0||s[2]!='-')
{
cout << "ERROR";
}
else{
if(abs(x2 - x1) == 1 && abs(y2 - y1) == 2 || abs(x2 - x1) == 2 && abs(y2 - y1) == 1)
{
cout << "YES";
}
else
{
cout << "NO";
}
}
return 0;
}
Простенькая проверка на возможность хода конем.
Verenick,
02 Июня 2020
-
+1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
/// <summary>
/// Сохранение описания отеля в базу данных.
/// </summary>
public void Save()
{
lock ("save")
{
tablecell,
01 Июня 2020
-
+1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
吾有一術。名之曰「斐波那契」。欲行是術。必先得一數。曰「甲」。乃行是術曰。
若「甲」等於零者乃得零也
若「甲」等於一者乃得一也
減「甲」以一。減「甲」以二。名之曰「乙」。曰「丙」。
施「斐波那契」於「乙」。名之曰「丁」。
施「斐波那契」於「丙」。名之曰「戊」。
加「丁」以「戊」。名之曰「己」。
乃得「己」。
是謂「斐波那契」之術也。
施「斐波那契」於十二。書之。
文言 wenyan-lang
Числа Фибоначчи.
https://github.com/wenyan-lang/wenyan
jojaxon,
01 Июня 2020
-
+1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
# -*- coding: iso-8859-1 -*-
schön = Wahr
häßlich = Falsch
für bäh in [schön, häßlich]:
drucke bäh
def sovielwiemöglich():
"gib"
zurück "was mir gehört"
Отсюда:
http://www.fiber-space.de/EasyExtend/doc/teuton/teuton.htm
TEH3OPHblu_nemyx,
01 Июня 2020