- 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
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
#!/usr/bin/env escript
-mode(compile).
main(["-p"|Filenames]) ->
put(pretend, true),
main(Filenames);
main(Filenames) ->
case get(pretend) of
true -> ok;
_ -> put(pretend, false)
end,
Albums = lists:filtermap(fun parse_name/1, Filenames),
lists:foreach(fun process_album/1, Albums).
process_album({Zip, Artist, Album}) ->
Dir = filename:absname(filename:join(Artist, Album)),
case filelib:wildcard(Dir ++ "/cover.*") of
[] ->
io:format("Will create ~p~n", [Dir]),
get(pretend) orelse do_process_album(Dir, Zip, Album);
_ ->
io:format("Ignoring ~p : ~p~n", [Artist, Album])
end.
do_process_album(Dir, Zip, Album) ->
ok = filelib:ensure_dir(Dir ++ "/fake"),
0 = exec(Dir, "/usr/bin/unzip", [Zip, "-d", Dir]),
postprocess(Album, Dir).
postprocess(Album, Dir) ->
Files = filelib:wildcard(Dir ++ "/*-*[0-9]*.flac"),
lists:foreach(fun(I) -> rename_flac(Album, I) end, Files).
rename_flac(Album, OldFile) ->
Dir = filename:dirname(OldFile),
OldName = filename:basename(OldFile),
Options = [{capture, all_but_first, list}],
{ok, RE} = re:compile(Album ++ " - ([0-9]+.*\\.flac)", [unicode]),
case re:run(OldName, RE, Options) of
{match, [NewName]} ->
io:format("New name: ~p~n", [NewName]),
NewFile = filename:join(Dir, NewName),
ok = file:rename(OldFile, NewFile);
nomatch ->
ok
end.
parse_name(Filename) ->
Opts = [{capture, ['band', album], list}],
case re:run(filename:basename(Filename), "(?<band>[^-]+) - (?<album>.*)\\.zip", Opts) of
{match, [Band, Album]} ->
{true, {filename:absname(Filename), Band, Album}};
nomatch ->
false
end.
-spec exec(file:filename(), file:filename(), [string() | binary()]) -> integer().
exec(Dir, CMD, Args) ->
Port = open_port( {spawn_executable, CMD}
, [ exit_status
, binary
, stderr_to_stdout
, {args, Args}
, {cd, Dir}
, {line, 300}
]
),
collect_port_output(Port, filename:basename(CMD)).
-spec collect_port_output(port(), string()) -> integer().
collect_port_output(Port, CMD) ->
receive
{Port, {data, {_, Data}}} ->
io:format("~s: ~s~n", [CMD, Data]),
collect_port_output(Port, CMD);
{Port, {exit_status, ExitStatus}} ->
ExitStatus
end.
CHayT 08.01.2022 19:29 # +1
bormand 08.01.2022 19:41 # 0
Напомнило о том, как мне когда-то захотелось почитать мангу, но лень было искать читалку.
https://govnokod.ru/15787
JloJle4Ka 08.01.2022 19:43 # 0
bormand 08.01.2022 19:44 # 0
JloJle4Ka 08.01.2022 19:46 # +1
guest6 08.01.2022 22:14 # 0
guest6 08.01.2022 21:14 # +2
https://govnokod.ru/user/23530
guest6 08.01.2022 21:36 # +1
bormand 08.01.2022 21:46 # +1
Floating_cockerel 10.01.2022 09:50 # 0
bormand 08.01.2022 19:51 # 0
CHayT 08.01.2022 19:54 # 0
HoBorogHuu_nemyx 08.01.2022 19:54 # 0
3.14159265 08.01.2022 21:19 # +1
> вместо вменяемого формата "<bandname>/<album>/02 <title>.flac", который можно было бы просто распаковать
Единственная проблема этой и похожих утилит (вроде mv) что они не умеют создавать несуществующие директории.
А mkdir не умеет заходить в созданную директорию.
CHayT 08.01.2022 21:27 # 0
That is precisely the idea, General.
bormand 08.01.2022 21:45 # +1
И самая фундаментальная. В чём смысл масс-ренеймилки, которая не умеет создавать каталоги по необходимости?
3.14159265 08.01.2022 21:48 # +1
ISO 08.01.2022 21:50 # +4
ЖМУ/ПИНУС, ШВАБОДКА, UNIX WAY,
КОКОКОКОКОКОКО
3.14159265 08.01.2022 21:51 # 0
j123123 09.01.2022 16:25 # 0
Floating_cockerel 09.01.2022 16:53 # 0
guest6 09.01.2022 16:58 # 0
Floating_cockerel 09.01.2022 17:00 # +1
3.14159265 09.01.2022 16:57 # 0
А тут мимо.
gcc умеет. error: X; did you mean to use Y
Floating_cockerel 09.01.2022 16:59 # 0
3.14159265 09.01.2022 17:00 # 0
guest6 09.01.2022 17:01 # 0
3.14159265 09.01.2022 17:02 # 0
j123123 10.01.2022 00:20 # 0
CHayT 10.01.2022 00:25 # 0
j123123 10.01.2022 00:48 # 0
CHayT 10.01.2022 13:36 # 0
Soul_re@ver 10.01.2022 13:44 # 0
CHayT 10.01.2022 14:00 # 0
Soul_re@ver 10.01.2022 01:14 # 0
> чтобы там что-то модифицировалось и перекомпилировалось, пока все не заработает как надо
На Malbolge так первые программы и писались.
j123123 10.01.2022 14:59 # 0
> Typically, superoptimizing is performed via exhaustive brute-force search in the space of valid instruction sequences. This is a costly method, and thus impractical for general-purpose compilers. Yet, it has been shown to be useful in optimizing performance-critical inner loops. It is also possible to use a SMT solver to approach the problem.
bormand 08.01.2022 21:52 # 0
CHayT 09.01.2022 00:45 # +2
CHayT 09.01.2022 00:48 # +1
bormand 09.01.2022 00:48 # +2
CHayT 09.01.2022 00:50 # +1
HoBorogHuu_nemyx 09.01.2022 01:36 # 0
HoBorogHuu_nemyx 09.01.2022 01:02 # 0
CHayT 09.01.2022 01:08 # 0
bormand 09.01.2022 01:09 # 0
bormand 09.01.2022 01:24 # +4
JloJle4Ka 08.01.2022 19:40 # 0
ObeseYoung 08.01.2022 19:44 # +2
CHayT 08.01.2022 19:58 # +1
HoBorogHuu_nemyx 08.01.2022 19:58 # +1
https://govnokod.ru/27135
Кажется, уже нужно новую версию выкладывать.
JlEOHuD_Ky4Ma 09.01.2022 12:57 # 0
CHayT 09.01.2022 14:43 # 0
guest6 09.01.2022 14:50 # 0
guest6 09.01.2022 14:51 # +1
CHayT 09.01.2022 14:59 # +1
guest6 09.01.2022 15:02 # +1
bormand 09.01.2022 15:04 # 0
guest6 09.01.2022 15:06 # 0
bormand 09.01.2022 15:07 # +1
guest6 09.01.2022 15:13 # 0
HoBorogHuu_nemyx 09.01.2022 15:28 # +1
ObeseYoung 09.01.2022 19:51 # +1
guest6 09.01.2022 15:05 # +1
ObeseYoung 09.01.2022 21:41 # 0
https://pbs.twimg.com/media/FIl42j6XIAcQDYN?format=jpg&name=large
digitalEugene 10.01.2022 15:06 # 0
CHayT 10.01.2022 18:02 # 0
Soul_re@ver 10.01.2022 18:07 # 0
j123123 11.01.2022 12:27 # 0
guest6 11.01.2022 13:35 # 0
CHayT 11.01.2022 13:55 # 0
Soul_re@ver 11.01.2022 14:29 # +3
> $1000
> PHP
> $300
Вывод: программирование на «Haskell» экономически не оправдано. Вот поэтому я за «PHP».
j123123 11.01.2022 14:36 # +1
CHayT 11.01.2022 14:46 # 0
Floating_cockerel 11.01.2022 15:52 # 0
guest6 11.01.2022 15:56 # 0
guest6 11.01.2022 16:03 # 0
guest6 11.01.2022 16:04 # +1
guest6 11.01.2022 19:31 # 0
Задача: поменять цветовую схему на ворпресс сайте
Ответ1: сделаю на 2 часа, $15
HoBorogHuu_nemyx 11.01.2022 19:45 # +1
CHayT 11.01.2022 17:35 # +1
HoBorogHuu_nemyx 11.01.2022 17:50 # 0
guest6 11.01.2022 17:39 # 0
Floating_cockerel 11.01.2022 17:40 # 0
HoBorogHuu_nemyx 11.01.2022 17:46 # 0
guest6 11.01.2022 17:52 # 0
CHayT 11.01.2022 17:53 # +2
bormand 11.01.2022 18:05 # 0
guest6 11.01.2022 20:16 # 0