updat
This commit is contained in:
parent
5a9bf4922b
commit
e28c9dc331
7 changed files with 7860 additions and 0 deletions
1497
TRUE - Storyteller (IOException) [Expert].osu
Normal file
1497
TRUE - Storyteller (IOException) [Expert].osu
Normal file
File diff suppressed because it is too large
Load diff
1638
lapix - Day by Day feat. Nicole Curry (IOException) [AI].osu
Normal file
1638
lapix - Day by Day feat. Nicole Curry (IOException) [AI].osu
Normal file
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
2628
lapix - Day by Day feat. Nicole Curry (IOException) [hitsounds].osu
Normal file
2628
lapix - Day by Day feat. Nicole Curry (IOException) [hitsounds].osu
Normal file
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,306 @@
|
|||
osu file format v14
|
||||
|
||||
[General]
|
||||
AudioFilename: audio.mp3
|
||||
AudioLeadIn: 0
|
||||
PreviewTime: 18808
|
||||
Countdown: 0
|
||||
SampleSet: Soft
|
||||
StackLeniency: 0
|
||||
Mode: 0
|
||||
LetterboxInBreaks: 0
|
||||
WidescreenStoryboard: 1
|
||||
|
||||
[Editor]
|
||||
DistanceSpacing: 1.7
|
||||
BeatDivisor: 4
|
||||
GridSize: 4
|
||||
TimelineZoom: 1.7
|
||||
|
||||
[Metadata]
|
||||
Title:Spelunker
|
||||
TitleUnicode:Spelunker
|
||||
Artist:Unknown Artist
|
||||
ArtistUnicode:Unknown Artist
|
||||
Creator:IOException
|
||||
Version:top-rhythm'
|
||||
Source:しょぼんのアクション
|
||||
Tags:スペランカー しょぼんのアクション sybon Syobon no Akushon Action Cat Neko Gato mario from hell Super Mario Bros world parody ちくChiku Spelunk 元祖みんなでスペランカー Tim Timothy G. Martin stage theme 01 atari NES nintendo entertainment system video game instrumental scognito deadcode ceo_of_osu ceo of osu press
|
||||
BeatmapID:0
|
||||
BeatmapSetID:1145452
|
||||
|
||||
[Difficulty]
|
||||
HPDrainRate:3
|
||||
CircleSize:0
|
||||
OverallDifficulty:8.5
|
||||
ApproachRate:0
|
||||
SliderMultiplier:3.6
|
||||
SliderTickRate:1
|
||||
|
||||
[Events]
|
||||
//Background and Video events
|
||||
0,0,"WP.PNG",0,0
|
||||
//Break Periods
|
||||
//Storyboard Layer 0 (Background)
|
||||
//Storyboard Layer 1 (Fail)
|
||||
//Storyboard Layer 2 (Pass)
|
||||
//Storyboard Layer 3 (Foreground)
|
||||
//Storyboard Layer 4 (Overlay)
|
||||
//Storyboard Sound Samples
|
||||
|
||||
[TimingPoints]
|
||||
133,397.350993377483,4,2,0,70,1,0
|
||||
133,-10,4,2,0,70,0,0
|
||||
5894,-10,4,2,0,80,0,0
|
||||
6291,-10,4,2,0,85,0,0
|
||||
6589,-10,4,2,0,75,0,0
|
||||
12947,-10,4,2,0,65,0,0
|
||||
17616,-10,4,2,0,70,0,0
|
||||
19205,-10,4,2,0,90,0,1
|
||||
25464,-10,4,2,0,90,0,0
|
||||
25563,-10,4,2,0,90,0,1
|
||||
32020,-10,4,2,0,85,0,0
|
||||
35099,-10,4,2,0,93,0,0
|
||||
36689,-10,4,2,0,100,0,0
|
||||
|
||||
|
||||
[Colours]
|
||||
Combo1 : 0,128,255
|
||||
Combo2 : 251,217,153
|
||||
Combo3 : 131,180,252
|
||||
Combo4 : 247,157,157
|
||||
Combo5 : 159,253,157
|
||||
Combo6 : 224,177,252
|
||||
Combo7 : 128,255,128
|
||||
Combo8 : 255,128,128
|
||||
|
||||
[HitObjects]
|
||||
256,193,133,5,4,1:0:0:0:
|
||||
255,193,431,1,0,1:0:0:0:
|
||||
254,192,530,1,8,2:0:0:0:
|
||||
254,191,729,1,2,2:0:0:0:
|
||||
254,190,927,1,0,1:0:0:0:
|
||||
256,190,1126,1,2,2:0:0:0:
|
||||
257,190,1325,1,8,2:0:0:0:
|
||||
256,193,1523,1,2,0:0:0:0:
|
||||
257,192,1623,1,2,0:0:0:0:
|
||||
255,193,1722,5,0,1:0:0:0:
|
||||
254,192,2020,1,0,1:0:0:0:
|
||||
254,191,2119,1,8,2:0:0:0:
|
||||
254,190,2317,1,2,2:0:0:0:
|
||||
257,190,2715,1,0,1:0:0:0:
|
||||
257,192,2815,1,0,1:0:0:0:
|
||||
256,193,2914,1,8,1:0:0:0:
|
||||
255,193,3311,5,4,1:2:0:0:
|
||||
254,192,3609,1,0,1:0:0:0:
|
||||
254,191,3709,1,8,2:0:0:0:
|
||||
254,190,3907,1,2,2:0:0:0:
|
||||
256,190,4106,1,0,1:0:0:0:
|
||||
257,190,4305,1,2,2:0:0:0:
|
||||
257,192,4503,1,8,2:0:0:0:
|
||||
255,193,4702,1,2,2:0:0:0:
|
||||
256,193,4801,1,2,0:0:0:0:
|
||||
254,192,4901,5,0,1:0:0:0:
|
||||
254,191,5199,1,0,1:0:0:0:
|
||||
254,190,5298,1,8,2:0:0:0:
|
||||
256,190,5497,1,2,1:2:0:0:
|
||||
257,190,5795,1,0,1:2:0:0:
|
||||
257,192,5894,1,0,1:2:0:0:
|
||||
256,193,6093,1,8,1:0:0:0:
|
||||
255,193,6291,1,10,2:0:0:0:
|
||||
254,192,6391,1,10,2:0:0:0:
|
||||
254,191,6490,5,4,1:0:0:0:
|
||||
254,190,6788,1,0,1:0:0:0:
|
||||
256,190,6887,1,8,2:0:0:0:
|
||||
257,190,7086,1,2,2:0:0:0:
|
||||
257,192,7285,1,0,1:0:0:0:
|
||||
256,193,7384,1,2,2:0:0:0:
|
||||
256,193,7483,1,2,2:0:0:0:
|
||||
255,193,7682,1,8,2:0:0:0:
|
||||
255,193,7881,1,2,2:0:0:0:
|
||||
254,192,8080,5,0,1:0:0:0:
|
||||
254,191,8179,1,0,1:0:0:0:
|
||||
254,190,8278,1,0,1:0:0:0:
|
||||
254,190,8378,1,0,1:0:0:0:
|
||||
256,190,8477,1,8,2:0:0:0:
|
||||
257,190,8676,1,2,2:0:0:0:
|
||||
257,192,8874,1,0,1:0:0:0:
|
||||
256,193,9073,1,8,1:2:0:0:
|
||||
255,193,9172,1,0,1:0:0:0:
|
||||
254,192,9272,1,8,1:0:0:0:
|
||||
254,192,9470,1,8,1:0:0:0:
|
||||
254,191,9669,5,4,1:2:0:0:
|
||||
254,190,9967,1,0,1:0:0:0:
|
||||
256,190,10066,1,8,2:0:0:0:
|
||||
257,190,10265,1,2,2:0:0:0:
|
||||
257,192,10464,1,0,1:0:0:0:
|
||||
256,193,10662,1,2,2:0:0:0:
|
||||
255,193,10861,1,8,2:0:0:0:
|
||||
254,192,11060,1,2,2:0:0:0:
|
||||
254,192,11159,1,2,2:0:0:0:
|
||||
254,191,11258,5,0,1:0:0:0:
|
||||
256,190,11556,1,0,1:0:0:0:
|
||||
257,190,11656,1,8,2:0:0:0:
|
||||
257,192,11854,1,2,2:0:0:0:
|
||||
257,192,11954,1,2,2:0:0:0:
|
||||
256,193,12053,1,0,1:0:0:0:
|
||||
255,193,12152,1,0,1:0:0:0:
|
||||
254,192,12252,1,0,1:0:0:0:
|
||||
254,190,12450,1,8,1:0:0:0:
|
||||
256,190,12649,1,10,2:0:0:0:
|
||||
257,190,12748,1,10,2:0:0:0:
|
||||
257,192,12848,5,6,3:2:0:0:
|
||||
256,193,13146,1,0,3:0:0:0:
|
||||
255,193,13444,1,0,3:0:0:0:
|
||||
254,192,13841,1,0,3:0:0:0:
|
||||
254,191,14040,1,2,3:2:0:0:
|
||||
254,190,14238,1,2,3:2:0:0:
|
||||
256,190,14437,5,2,3:2:0:0:
|
||||
257,190,14735,1,2,3:2:0:0:
|
||||
257,192,15033,1,2,3:2:0:0:
|
||||
254,192,15331,1,0,3:0:0:0:
|
||||
256,193,15431,1,0,3:0:0:0:
|
||||
255,193,15629,1,0,3:0:0:0:
|
||||
254,192,15729,1,0,3:0:0:0:
|
||||
254,192,15828,1,0,3:0:0:0:
|
||||
254,191,16027,5,6,3:2:0:0:
|
||||
254,190,16325,1,0,3:0:0:0:
|
||||
256,190,16623,1,0,3:0:0:0:
|
||||
256,190,16722,1,0,3:0:0:0:
|
||||
257,190,16822,1,2,3:2:0:0:
|
||||
257,192,17020,1,2,3:2:0:0:
|
||||
256,193,17219,1,2,3:2:0:0:
|
||||
255,193,17417,1,2,3:2:0:0:
|
||||
254,192,17616,5,8,2:0:0:0:
|
||||
254,191,17815,1,8,2:0:0:0:
|
||||
254,190,18013,1,8,2:0:0:0:
|
||||
256,190,18212,1,8,2:0:0:0:
|
||||
257,190,18411,5,8,1:2:0:0:
|
||||
257,192,18510,1,0,1:0:0:0:
|
||||
256,193,18709,1,0,1:0:0:0:
|
||||
255,193,18808,1,8,1:0:0:0:
|
||||
254,192,18907,1,8,1:0:0:0:
|
||||
254,191,19007,1,8,1:0:0:0:
|
||||
254,190,19106,1,8,1:0:0:0:
|
||||
256,190,19205,5,4,1:0:0:0:
|
||||
257,190,19404,1,2,0:2:0:0:
|
||||
257,192,19503,1,0,1:0:0:0:
|
||||
256,193,19603,1,8,2:0:0:0:
|
||||
255,193,19801,1,2,2:0:0:0:
|
||||
254,190,19901,1,2,0:0:0:0:
|
||||
254,192,20000,1,0,1:0:0:0:
|
||||
254,190,20099,1,2,0:0:0:0:
|
||||
254,191,20199,1,2,2:0:0:0:
|
||||
256,190,20397,1,8,2:0:0:0:
|
||||
257,190,20596,1,2,2:0:0:0:
|
||||
254,190,20695,1,2,0:0:0:0:
|
||||
257,192,20795,5,0,1:0:0:0:
|
||||
255,193,21093,1,0,1:0:0:0:
|
||||
254,192,21192,1,8,2:0:0:0:
|
||||
254,191,21391,1,2,2:0:0:0:
|
||||
256,190,21689,1,0,1:0:0:0:
|
||||
256,190,21788,1,0,1:0:0:0:
|
||||
256,190,21887,1,0,1:0:0:0:
|
||||
257,190,21987,1,8,1:0:0:0:
|
||||
257,192,22384,5,4,1:0:0:0:
|
||||
256,193,22583,1,2,0:2:0:0:
|
||||
255,193,22682,1,0,1:0:0:0:
|
||||
254,192,22782,1,8,2:0:0:0:
|
||||
254,191,22980,1,2,2:0:0:0:
|
||||
257,190,23080,1,2,0:0:0:0:
|
||||
254,190,23179,1,0,1:0:0:0:
|
||||
257,190,23278,1,2,0:0:0:0:
|
||||
256,190,23378,1,2,2:0:0:0:
|
||||
256,190,23477,1,2,2:0:0:0:
|
||||
257,192,23576,1,8,2:0:0:0:
|
||||
256,193,23775,1,2,2:0:0:0:
|
||||
256,193,23874,1,2,2:0:0:0:
|
||||
255,193,23974,5,0,1:0:0:0:
|
||||
254,191,24272,1,0,1:0:0:0:
|
||||
254,190,24371,1,8,2:0:0:0:
|
||||
254,190,24470,1,2,2:0:0:0:
|
||||
256,190,24570,1,2,2:0:0:0:
|
||||
257,192,24868,1,0,1:0:0:0:
|
||||
256,193,24967,1,0,1:0:0:0:
|
||||
255,193,25166,1,8,1:2:0:0:
|
||||
254,192,25265,1,0,1:0:0:0:
|
||||
254,191,25365,1,10,2:0:0:0:
|
||||
254,190,25464,1,10,2:0:0:0:
|
||||
256,190,25563,5,4,1:0:0:0:
|
||||
257,192,25861,1,0,1:0:0:0:
|
||||
256,193,25960,1,8,2:0:0:0:
|
||||
255,193,26159,1,2,2:0:0:0:
|
||||
254,192,26358,1,0,1:0:0:0:
|
||||
254,191,26457,1,2,2:0:0:0:
|
||||
254,191,26556,1,2,2:0:0:0:
|
||||
254,191,26656,1,2,2:0:0:0:
|
||||
254,190,26755,1,8,2:0:0:0:
|
||||
254,191,26954,1,2,2:0:0:0:
|
||||
256,190,27152,5,0,1:0:0:0:
|
||||
257,190,27252,1,0,1:0:0:0:
|
||||
257,192,27351,1,0,1:0:0:0:
|
||||
256,193,27550,1,8,2:0:0:0:
|
||||
255,193,27748,1,2,2:0:0:0:
|
||||
254,192,27947,1,0,1:0:0:0:
|
||||
254,191,28145,1,8,1:2:0:0:
|
||||
254,191,28245,1,8,1:2:0:0:
|
||||
254,190,28344,1,8,1:0:0:0:
|
||||
256,190,28742,5,4,1:0:0:0:
|
||||
257,190,28941,1,2,0:2:0:0:
|
||||
257,192,29040,1,0,1:0:0:0:
|
||||
256,193,29139,1,8,2:0:0:0:
|
||||
255,193,29338,1,2,2:0:0:0:
|
||||
254,192,29536,1,0,1:0:0:0:
|
||||
254,191,29735,1,2,2:0:0:0:
|
||||
254,190,29834,1,2,0:0:0:0:
|
||||
256,190,29934,1,8,2:0:0:0:
|
||||
257,190,30132,1,2,2:0:0:0:
|
||||
257,192,30331,5,0,1:0:0:0:
|
||||
256,193,30629,1,0,1:0:0:0:
|
||||
255,193,30729,1,8,2:0:0:0:
|
||||
256,193,30828,1,2,0:0:0:0:
|
||||
254,192,30927,1,2,2:0:0:0:
|
||||
254,190,31225,1,0,1:0:0:0:
|
||||
256,190,31325,1,8,1:2:0:0:
|
||||
257,190,31424,1,0,1:0:0:0:
|
||||
257,192,31523,1,8,1:0:0:0:
|
||||
256,193,31722,1,10,2:0:0:0:
|
||||
256,193,31821,1,10,2:0:0:0:
|
||||
255,193,31921,5,0,1:0:0:0:
|
||||
254,192,32119,1,8,2:0:0:0:
|
||||
254,191,32318,1,8,2:0:0:0:
|
||||
254,190,32517,1,8,2:0:0:0:
|
||||
256,190,32616,1,8,2:0:0:0:
|
||||
257,190,32815,1,8,2:0:0:0:
|
||||
257,192,32914,1,8,2:0:0:0:
|
||||
256,193,33113,1,8,2:0:0:0:
|
||||
255,193,33212,1,8,2:0:0:0:
|
||||
254,192,33510,5,0,1:0:0:0:
|
||||
254,191,33708,1,8,2:0:0:0:
|
||||
254,190,33907,1,8,2:0:0:0:
|
||||
256,190,34106,1,8,2:0:0:0:
|
||||
257,190,34205,1,8,2:0:0:0:
|
||||
257,192,34404,1,8,2:0:0:0:
|
||||
256,193,34503,1,8,1:2:0:0:
|
||||
256,193,34603,1,8,2:0:0:0:
|
||||
255,193,34702,1,8,2:0:0:0:
|
||||
254,192,34801,1,8,2:0:0:0:
|
||||
254,190,35099,5,0,1:0:0:0:
|
||||
256,190,35298,1,8,2:0:0:0:
|
||||
257,190,35397,1,8,2:0:0:0:
|
||||
257,192,35497,1,8,2:0:0:0:
|
||||
256,193,35695,1,8,2:0:0:0:
|
||||
255,193,35894,1,0,1:0:0:0:
|
||||
254,192,36093,1,8,2:0:0:0:
|
||||
254,191,36192,1,8,2:0:0:0:
|
||||
254,190,36291,1,8,2:0:0:0:
|
||||
256,190,36490,1,8,2:0:0:0:
|
||||
257,190,36689,5,8,1:2:0:0:
|
||||
257,192,36887,5,8,2:0:0:0:
|
||||
256,193,37086,5,8,1:2:0:0:
|
||||
255,193,37285,5,8,2:0:0:0:
|
||||
254,192,37483,5,8,1:2:0:0:
|
||||
254,192,37583,1,8,1:2:0:0:
|
||||
254,192,37782,1,0,1:2:0:0:
|
||||
254,192,37881,1,8,1:2:0:0:
|
||||
254,192,37980,1,8,1:2:0:0:
|
96
spelunker/generate_skin.py
Normal file
96
spelunker/generate_skin.py
Normal file
|
@ -0,0 +1,96 @@
|
|||
from PIL import Image, ImageDraw, ImageFont
|
||||
from pathlib import Path
|
||||
|
||||
out_dir = r"C:\Users\mzhan\AppData\Local\osu!\Songs\1145452 Unknown Artist - Spelunker"
|
||||
|
||||
|
||||
def empty(path):
|
||||
im = Image.new("RGBA", (1, 1))
|
||||
im.save(path)
|
||||
|
||||
|
||||
hitcircle = Image.new("RGBA", (128, 128))
|
||||
draw = ImageDraw.Draw(hitcircle)
|
||||
draw.ellipse((5, 5, 118 + 5, 118 + 5), fill="white")
|
||||
|
||||
hitcircleoverlay = Image.new("RGBA", (128, 128))
|
||||
draw = ImageDraw.Draw(hitcircleoverlay)
|
||||
draw.ellipse((5, 5, 118 + 5, 118 + 5), outline="white", width=8)
|
||||
|
||||
approachcircle = Image.new("RGBA", (126, 126))
|
||||
draw2 = ImageDraw.Draw(approachcircle)
|
||||
size = 4
|
||||
draw2.ellipse((size, size, 118 + size, 118 + size), outline="white", width=6)
|
||||
|
||||
scorebarbg = Image.new("RGBA", (400, 40))
|
||||
draw4 = ImageDraw.Draw(scorebarbg)
|
||||
draw4.rectangle((0, 10, 400, 40), fill="yellow")
|
||||
|
||||
scorebarcolor = Image.new("RGBA", (390, 40))
|
||||
draw5 = ImageDraw.Draw(scorebarcolor)
|
||||
draw5.rectangle((0, 4, 400, 20), fill="orange")
|
||||
|
||||
|
||||
def get_text_dimensions(text_string, font):
|
||||
# https://stackoverflow.com/a/46220683/9263761
|
||||
ascent, descent = font.getmetrics()
|
||||
|
||||
text_width = font.getmask(text_string).getbbox()[2]
|
||||
text_height = font.getmask(text_string).getbbox()[3] + descent
|
||||
|
||||
return (text_width, text_height)
|
||||
|
||||
|
||||
def thefont(size=None):
|
||||
if size is None:
|
||||
size = 48
|
||||
return ImageFont.FreeTypeFont(r"C:\WINDOWS\FONTS\SIMFANG.TTF", size)
|
||||
|
||||
|
||||
def gentext(text, path, font=None, size=None, **kwargs):
|
||||
if font is None:
|
||||
font = thefont(size=size)
|
||||
|
||||
width, height = get_text_dimensions(text, font)
|
||||
height += 2
|
||||
|
||||
im = Image.new("RGBA", (width, height))
|
||||
draw3 = ImageDraw.Draw(im)
|
||||
draw3.fontmode = "1"
|
||||
draw3.text((0, 0), text, font=font, **kwargs)
|
||||
im.save(path)
|
||||
|
||||
|
||||
def gen2text(text, path, font=None, size=None, **kwargs):
|
||||
if size is None:
|
||||
size = 48
|
||||
|
||||
p = Path(path)
|
||||
gentext(text, p, font=font, **kwargs)
|
||||
|
||||
pname = p.name.rstrip(".png")
|
||||
p2 = p.with_name(pname + "@2x.png")
|
||||
gentext(text, p2, font=font, size=size * 2, **kwargs)
|
||||
|
||||
|
||||
# Scorebar set
|
||||
scorebarbg.save(f"{out_dir}/scorebar-bg.png")
|
||||
scorebarcolor.save(f"{out_dir}/scorebar-colour.png")
|
||||
|
||||
# Hitcircle set
|
||||
hitcircle.save(f"{out_dir}/hitcircle.png")
|
||||
hitcircleoverlay.save(f"{out_dir}/hitcircleoverlay.png")
|
||||
hitcircleoverlay.save(f"{out_dir}/sliderstartcircleoverlay.png")
|
||||
empty(f"{out_dir}/sliderendcircleoverlay.png")
|
||||
approachcircle.save(f"{out_dir}/approachcircle.png")
|
||||
hitcircle.save(f"{out_dir}/sliderstartcircle.png")
|
||||
|
||||
# Hitcircle number set
|
||||
for i in range(10):
|
||||
gentext(str(i), f"{out_dir}/default-{i}.png", fill="white")
|
||||
|
||||
# Hitburst set
|
||||
gen2text("Zzz", f"{out_dir}/hit0.png")
|
||||
# gen2text("無謀な……", f"{out_dir}/hit100k.png")
|
||||
# gen2text("え?俺勝っちゃったの?", f"{out_dir}/hit300g.png")
|
||||
# gen2text("ヤッフー!!", f"{out_dir}/hit300k.png")
|
47
spelunker/generate_top_diff.py
Normal file
47
spelunker/generate_top_diff.py
Normal file
|
@ -0,0 +1,47 @@
|
|||
in_file_path = r"C:\Users\mzhan\AppData\Local\osu!\Songs\1145452 Unknown Artist - Spelunker\Unknown Artist - Spelunker (IOException) [top-rhythm'].osu"
|
||||
out_file_path = r"C:\Users\mzhan\AppData\Local\osu!\Songs\1145452 Unknown Artist - Spelunker\Unknown Artist - Spelunker (IOException) [Prece Enter Key].osu"
|
||||
|
||||
positions = [
|
||||
(317, 289),
|
||||
(225, 305),
|
||||
(151, 253),
|
||||
(135, 161),
|
||||
(186, 87),
|
||||
(278, 69),
|
||||
(352, 121),
|
||||
(369, 214),
|
||||
]
|
||||
|
||||
with open(in_file_path, "rb") as f:
|
||||
data = f.readlines()
|
||||
|
||||
with open(out_file_path, "wb") as f:
|
||||
section = b""
|
||||
c = 0
|
||||
for line in data:
|
||||
if line.startswith(b"Version"):
|
||||
line = line.replace(b"top-rhythm'", b"Prece Enter Key")
|
||||
|
||||
line = line.strip()
|
||||
if not line: continue
|
||||
|
||||
if line.startswith(b"[") and line.endswith(b"]"):
|
||||
section = line.lstrip(b"[").rstrip(b"]")
|
||||
|
||||
print(section, line)
|
||||
|
||||
if section != b"HitObjects":
|
||||
f.write(line + b"\n")
|
||||
continue
|
||||
|
||||
parts = line.split(b",")
|
||||
|
||||
if len(parts) > 2:
|
||||
x, y = positions[c]
|
||||
parts[0] = str(x).encode("utf-8")
|
||||
print(parts)
|
||||
parts[1] = str(y).encode("utf-8")
|
||||
c = (c + 1) % len(positions)
|
||||
|
||||
line = b",".join(parts)
|
||||
f.write(line + b"\n")
|
Loading…
Reference in a new issue