- 1
- 2
Альфастрахование» прокомментировало утечку данных клиентов
https://ko.ru/news/alfastrakhovanie-prokommentiroval-utechku-dannykh-klientov/
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
Альфастрахование» прокомментировало утечку данных клиентов
https://ko.ru/news/alfastrakhovanie-prokommentiroval-utechku-dannykh-klientov/
0
procedure TMonThread.FillCommentList;
var
HTTP:TIdHTTP;
URI:TIdURI;
S, Temp, Link, LastCm:string;
I, J:Integer;
Comm:TGComment;
Post:TGpost;
LinkList:TstringList;
CommList:TStringList;
begin
LinkList:=TStringList.Create;
CommList:=TStringList.Create;
HTTP:=TIdHTTP.Create(nil);
URI:=TIdURI.Create();
try
Temp:='';
LinkList.Sorted:=True;
LinkList.Duplicates:=DupIgnore;
HTTP.UserAgent:=uaRandom;
URI.Host:='govnokod.ru';
HTTP.Request.Host:='govnokod.ru';
HTTP.CookieManager.AddServerCookie('auth=a7dbe7abed9025a9a13ea15baa89a08f',URI);
Temp:=HTTP.LoadContent('http://govnokod.ru/comments');
Temp:=StringReplace(Temp,#13#10,'',[rfreplaceall]);
Temp:=StringReplace(Temp,#13,'',[rfreplaceall]);
Temp:=StringReplace(Temp,#10,'',[rfreplaceall]);
ParseAll('<li class="hentry">',Temp,'<div class="show-code">', LinkList);
for J:=0 to LinkList.Count-1 do
begin
if FCanceled then Exit;
Link:=ParseStr('<h2>Комментарий к <a rel="bookmark" class="entry-title" href="',LinkList[J],'"');
HTTP.ConnectTimeout:=60000;
HTTP.ReadTimeout:=60000;
Temp:='';
Temp:=HTTP.LoadContent(Link);
if HTTP.ContentSize>2000000 then Continue;
if HTTP.ResponseCode <> 200 then Continue;
if Pos('halted by an exception', Temp)>0 then Exit;
Post:=TGPost.Create;
LastCm:=Trim(ParseStr('name="comment', LinkList[J],'"'));
Post.LastCommentId:=StrToInt(LastCm);
S:=ParseStr('<a rel="bookmark" class="entry-title" href="http://govnokod.ru/', Temp,'"');
Post.Number:=StrToInt(S);
Post.Link:='http://govnokod.ru/'+S+'/';
S:=ParseStr('<p class="author">',Temp,'</p>');
S:=ParseStr('</a> <a href="http://govnokod.ru/user/',S,'</');
Post.Author:=StrAfter('>',S);
FPosts.Add(Post);
CommList.Clear;
ParseAll('<div id="comment-',Temp, '</li>', CommList);
for I:=0 to CommList.Count-1 do
begin
if FCanceled then Exit;
Comm:=TGComment.Create;
Comm.Author:=ParseStr('<strong class="entry-author"><a href="http://govnokod.ru/user/',CommList[I],'</strong>');
Comm.Author:=ParseStr('">', Comm.Author,'<');
Comm.Text:=ParseStr('<span class="comment-text">',CommList[I],'</span></div>');
Comm.Text:=DecorateText(Comm.Text);
//comment is hidded?
Comm.Hidden:=Pos('<span class="hidden-text">',CommList[I])>0;
// parse and calculate rating values.
Temp:=ParseStr('<span class="comment-vote">', CommList[I],'</span>');
//on count
S:=Trim(StrAfter('title="',Temp));
S:=Trim(StrBefore(' ',S));
Comm.OnCount:=StrToInt(S);
//against count
S:=Trim(StrAfter('и ',Temp));
S:=Trim(StrBefore(' ',S));
Comm.AgainstCount:=StrToInt(S);
Comm.Rating:=Comm.OnCount-Comm.AgainstCount;
S:=ParseStr('class="comment-vote-against" href="http://govnokod.ru/ratings/comment/',Temp,'/');
S:=Format('http://govnokod.ru/ratings/comment/%s/against',[S]);
Comm.AgainstLink:=S;
S:=ParseStr('<a class="answer" href="http://govnokod.ru/comments/', CommList[I],'"');
S:='http://govnokod.ru/comments/'+S;
Comm.AnswerLink:=S;
LastCM:=IntToStr(Post.LastCommentId);
Comm.Last:=Pos(LastCm, Comm.AnswerLink)>0;
Post.Comments.AddObject(Comm.Text, Comm);
end;
end;
finally
CommList.Free;
LinkList.Free;
HTTP.Free;
URI.Free;
end;
end;
(Флудоминусатор) Подгрузка и обработка комментариев из стока.
0
function ReplaceHTMLSpec(First, Last, Text, RepTo, RepEd:string):string;
var
P:Integer;
Temp:string;
begin
Temp:='';
while True do
begin
P:=AnsiPos(First, Text); // нашли первое вхождение тега...
if P =0 then Break;
begin
Delete(Text, P, Length(First)); // обработали тег...
Insert(RepTo, Text, P);
P:=PosEx(Last,Text,P); // ищем вхождение закрывающего тега...
if P > 0 then
begin
Delete(Text, P, Length(Last)); // обработали тег.
Insert(RepEd, Text, P);
end;
end;
end;
Result:=text;
end;
function DecorateText(S:string):string;
var
Temp:string;
begin
Result:=s;
{замена некоторых распространенных тегов}
Result:=StringReplace(Result,'<br />','',[rfreplaceall]); // движок не режет переводы строк, нет необходимости заменять <br> на #13#10.
Result:=StringReplace(Result,'"','"',[rfreplaceall]);
Result:=StringReplace(Result,'&','&',[rfreplaceall]);
Result:=StringReplace(Result,'<','<',[rfreplaceall]);
Result:=StringReplace(Result,'>','>',[rfreplaceall]);
Result:=StringReplace(Result,'<i>','[i]',[rfreplaceall]);
Result:=StringReplace(Result,'</i>','[/i]',[rfreplaceall]);
Result:=StringReplace(Result,'<b>','[b]',[rfreplaceall]);
Result:=StringReplace(Result,'</b>','[/b]',[rfreplaceall]);
Temp:='';
Result:=ReplaceHTMLSpec('<span style="color:white;">','</span>',Result,'[color=white]','[/color]');
Result:=ReplaceHTMLSpec('<span style="color:red;">','</span>',Result,'[color=red]','[/color]');
Result:=ReplaceHTMLSpec('<span style="color:blue;">','</span>', Result, '[color=blue]','[/color]');
Result:=ReplaceHTMLSpec('<span style="color:green;">','</span>',Result,'[color=green]','[/color]');
Result:=ReplaceHTMLSpec('<pre><code class="">','</code></pre>',Result,'[code]','[/code]');
Result:=ReplaceHTMLSpec('<span style="font-size:10px;">','</span>',Result,'[size=10]','[/size]');
Result:=ReplaceHTMLSpec('<span style="font-size:15px;">','</span>',Result,'[size=15]','[/size]');
Result:=ReplaceHTMLSpec('<span style="font-size:20px;">','</span>',Result,'[size=20]','[/size]');
Result:=ReplaceHTMLSpec('<span style="text-decoration:underline;">','</span>',Result,'[u]','[/u]');
Result:=ReplaceHTMLSpec('<span style="text-decoration:line-through;">','</span>',Result,'[s]','[/s]');
Result:=ReplaceHTMLSpec('<span style="text-decoration:blink;">','</span>',Result,'[blink]','[/blink]');
end;
Процедура для замены HTML-тегов на bb-codes, для их корректной обработки движком сайта,
при копировании/перепостинге комментария флудером.
−1
console.log(...($$ = $ => (~-~-$ && $$(~-$), (_$ = $_ => $ % (_[~~$_] ??= $) ? _$(-~$_) : _)()))((_ = []) + -~_ + -_ + -_))
Как ровные пацаны выводят в консоль первые 25 простых чисел
−1
private boolean orPredicate;
public boolean isOrPredicate() {
return orPredicate;
}
0
printf ("%d file%s processed", nfiles,
nfiles != 1 ? "s" : "");
Из официального гайда "GNU" по написанию кода на "C".
0
local function isEven(number)
local code = "return "
for i = 1, number do
code = code .. "false"
if i ~= number then
code = code .. " =="
end
end
return load(code)()
end
print("Enter number: ")
if isEven(tonumber(io.read())) then
print("Number is even")
else
print("Number is odd")
end
Определяет чётность числа. Работает для чисел >= 1 (Желательно <= 1000, чем лучше компьютер, тем больше)
0
from miditk.smf import MidiSequence
from miditk.common import constants
from sys import argv
import datetime
sequence = MidiSequence.fromfile(argv[1])
dt0 = datetime.datetime(1,1,1)
tail = ''
for time, group in sequence.events_by_time():
ms = datetime.timedelta(milliseconds=time)
pretty_time = (dt0+ms).strftime('%M:%S.%f')[:-4]
for ev in group:
if ev.meta_type == constants.TEXT:
text = ev.data.decode('windows-1251')
if text and (text[0] == '@' or text[0] == '/' or text[0] == '\\'):
if tail: # выводим отложенный текст
if tail[0] == '\\': # отбиваем абзац
print(f'[{pt}]')
if tail[0] == '@': # шапка, убираем префиксы типа @T, @L
print(f'[{pt}]{tail[2:]}')
else:
print(f'[{pt}]{tail[1:]}')
pt = pretty_time
tail = text
else: # откладываем текст на потом
tail = tail + text
Наговнякал на коленках конь-вертер текстов песен из .KAR (.midi со словами в событиях типа 1 = TEXT) в .LRC, чтобы готовые тексты можно было использовать с проигрывателями mp3- или flac-файлов.
Зависит от https://pypi.org/project/miditk-smf/
−1
package sample.Model;
import static sample.Main.*;
import static sample.Model.Move.countEnemy;
class EnemyBang {
private static double here[] = {0, 0, 0, 0};
static void create() {
int speedOfCreate = 150;
if (countEnemy % speedOfCreate == 0) EnemyBang.start();
else if (countEnemy % speedOfCreate == speedOfCreate - 1) EnemyBang.finish();
else {
EnemyBang.move();
EnemyBang.heroPain();
}
}
private static void whereIsPlayer(){
if (image.getY()<enemy.getY()) here[0] = enemy.getY()-image.getY(); //w
if (image.getY()>enemy.getY()) here[1] = image.getY()-enemy.getY();//s
if (image.getX()<enemy.getX()) here[2] = enemy.getX()-image.getX();//a
if (image.getX()>enemy.getX()) here[3] = image.getX()-enemy.getX();//d
}
private static void start() {
bang.setX(enemy.getX()+10);
bang.setY(enemy.getY()+10);
bang.setVisible(true);
here[0] = 0;
here[1] = 0;
here[2] = 0;
here[3] = 0;
EnemyBang.whereIsPlayer();
}
private static void finish() {
bang.setVisible(false);
}
private static void heroPain() {
int pain = 40;
Health.change(bang, pain);
if (CollisionObjects.check(bang, image)) {
bang.setVisible(false);
explosive.stop();
explosive.play();
}
}
private static void move(){
int i = 0;
int mover = 5;
for (double a: here) {
if (a != 0) i++;
}
if (i > 1) mover /= Math.sqrt(2);
if (here[0]!=0 && ((here[2]/here[0]<=Math.sqrt(3) && here[2]!=0)||(here[3]/here[0]<=Math.sqrt(3) && here[3]!=0)
|| (here[2]==0 && here[3]==0))) {
bang.setY(bang.getY() - mover);
}
if (here[1]!=0 && ((here[2]/here[1]<=Math.sqrt(3) && here[2]!=0)||(here[3]/here[1]<=Math.sqrt(3) && here[3]!=0)
|| (here[2]==0 && here[3]==0))) {
bang.setY(bang.getY() + mover);
}
if (here[2]!=0 && ((here[0]/here[2]<=Math.sqrt(3) && here[0]!=0)||(here[1]/here[2]<=Math.sqrt(3) && here[1]!=0)
|| (here[1]==0 && here[0]==0))) {
bang.setX(bang.getX() - mover);
}
if (here[3]!=0 && ((here[0]/here[3]<=Math.sqrt(3) && here[0]!=0)||(here[1]/here[3]<=Math.sqrt(3) && here[1]!=0)
|| (here[1]==0 && here[0]==0))) {
bang.setX(bang.getX() + mover);
}
}
}
Всем привет, это моя третья программа, друг который мне помогает учиться отправил меня на этот сайт - сказал сюда отправить, потому что хуже кода он не видел. Подскажите, что тут не так? Он просто не комментирует
+1
if(pfocus=="Balanced")
if(StatRank>=4)
if(Age>=4&&Age<=10)
Str+=0.4*StrMod*timemult*StatRank*HBTCMod*World_Stat_Mod
End+=0.4*EndMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Spd+=0.4*SpdMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Base_BP+=1*BPMod*timemult*StatRank*HBTCMod*World_Stat_Mod
MaxKi+=1*KiMod*timemult*StatRank*HBTCMod*World_Stat_Mod
else
Str+=4*StrMod*timemult*StatRank*HBTCMod*World_Stat_Mod
End+=4*EndMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Spd+=4*SpdMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Base_BP+=1*BPMod*timemult*StatRank*HBTCMod*World_Stat_Mod
MaxKi+=1*KiMod*timemult*StatRank*HBTCMod*World_Stat_Mod
if(Age>=10&&Age<=15)
Str+=0.4*StrMod*timemult*StatRank*HBTCMod*World_Stat_Mod
End+=0.4*EndMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Spd+=0.4*SpdMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Base_BP+=1*BPMod*timemult*StatRank*HBTCMod*World_Stat_Mod
MaxKi+=1*KiMod*timemult*StatRank*HBTCMod*World_Stat_Mod
else
Str+=4*StrMod*timemult*StatRank*HBTCMod*World_Stat_Mod
End+=4*EndMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Spd+=4*SpdMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Base_BP+=1*BPMod*timemult*StatRank*HBTCMod*World_Stat_Mod
MaxKi+=1*KiMod*timemult*StatRank*HBTCMod*World_Stat_Mod
if(Age>=15&&Age<=20)
Str+=0.4*StrMod*timemult*StatRank*HBTCMod*World_Stat_Mod
End+=0.4*EndMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Spd+=0.4*SpdMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Base_BP+=1*BPMod*timemult*StatRank*HBTCMod*World_Stat_Mod
MaxKi+=1*KiMod*timemult*StatRank*HBTCMod*World_Stat_Mod
else
Str+=4*StrMod*timemult*StatRank*HBTCMod*World_Stat_Mod
End+=4*EndMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Spd+=4*SpdMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Base_BP+=1*BPMod*timemult*StatRank*HBTCMod*World_Stat_Mod
MaxKi+=1*KiMod*timemult*StatRank*HBTCMod*World_Stat_Mod
if(Age>=20&&Age<=25)
Str+=0.4*StrMod*timemult*StatRank*HBTCMod*World_Stat_Mod
End+=0.4*EndMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Spd+=0.4*SpdMod*timemult*StatRank*HBTCMod*World_Stat_Mod
Base_BP+=1*BPMod*timemult*StatRank*HBTCMod*World_Stat_Mod
MaxKi+=1*KiMod*timemult*StatRank*HBTCMod*World_Stat_Mod
и далее ещё 300 строк такого говна. я не думал, что кроме мемов, ещё когда-нибудь с таким столкнусь