module main import os import metadata fn id3(){ mut audio := os.open("./data/АЛИСА 11000.mp3") or { panic(err) } // mut audio := os.open("./data/Глава 2. 16 и 17 июля.mp3") or { panic(err) } // mut audio := os.open("./data/01_01.mp3") or { panic(err) } // mut audio := os.open("./test.mp3") or { panic(err) } defer { audio.close() } mut wav := metadata.Audio{} wav.detect_tags(mut audio) println(wav.id3v1.embedded) println(wav.id3v23.embedded) println(wav.id3v24.embedded) if wav.id3v1.embedded { last_bytes := metadata.get_bytes(mut audio, -128, 128) wav.id3v1.get_metadata(last_bytes) println(wav.id3v1) } if wav.id3v23.embedded { wav.id3v23.get_full_size(mut audio) wav.id3v23.fill_tag(mut audio) println(wav.id3v23.to_v1()) wav.id3v23.tit2.encode_size(3) // println(wav.id3v23.tit2) } if wav.id3v24.embedded { wav.id3v24.get_full_size(mut audio) wav.id3v24.fill_tag(mut audio) println(wav.id3v24.to_v1()) // wav.id3v24.tit2.encode_size(4) flex := wav.id3v24.tit2.get_encoded_frame_tag(4) print(flex) // println(wav.id3v24.tit2) } // println(wav.id3v23) // println(wav.id3v23.tit2) // converted_idv31 := wav.id3v1.to_v23() // println(converted_idv31) // println(last_bytes) // flex := wav.id3v1.to_bytes() // audio.seek(-1, os.SeekMode.end) or { panic(err) } // flex1 := audio.tell() or { panic(err) } // mut all_bytes := audio.read_bytes(int(flex1))#[..-128] // all_bytes << flex // println(all_bytes.len) // println(int(flex1)) // all_bytes := wav.id3v1.insert(mut audio, -128) // os.write_bytes("./test.mp3", all_bytes) or { panic(err) } } fn main(){ id3() }