Skip to content

Commit

Permalink
Merge a14c556 into 1f0fc00
Browse files Browse the repository at this point in the history
  • Loading branch information
brotherlogic committed Jun 14, 2019
2 parents 1f0fc00 + a14c556 commit 29a43ae
Show file tree
Hide file tree
Showing 11 changed files with 654 additions and 0 deletions.
25 changes: 25 additions & 0 deletions cdtests/1018055.file
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
Ǒ> Room To Live�The Fall*�
�https://img.discogs.com/gCYWYFvtC4CeLSHYnIIDXdpBig0=/fit-in/600x597/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-1018055-1368400711-7278.jpeg.jpgprimary*�
�https://img.discogs.com/7s2EzkC63oOVTOyIiJm6B9kzeiI=/fit-in/600x594/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-1018055-1368400734-2013.jpeg.jpg secondary*�
�https://img.discogs.com/KpLsgTu0YnYeKlhm5-MiNRvfy8I=/fit-in/474x460/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-1018055-1184587461.jpeg.jpg secondary*�
�https://img.discogs.com/eL-rX10hep-WrE_oJOWKuthNYmg=/fit-in/474x460/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-1018055-1184587470.jpeg.jpg secondary*�
�https://img.discogs.com/l9GOVJspUTtcHmdOxPlRQrta3Ik=/fit-in/600x465/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-1018055-1368400741-1236.jpeg.jpg secondary*�
�https://img.discogs.com/pX5Qv8RHqXbkFaqXnWu76ni5K6k=/fit-in/600x609/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-1018055-1368400705-3682.jpeg.jpg secondary*�
�https://img.discogs.com/m46PqvmjqcNgQXpP8_W7OrF4QVI=/fit-in/600x467/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-1018055-1368400688-3930.jpeg.jpg secondary:
Castle Music CMRCD1135�(@Xֱj)
Album
ReissueCD1"Expanded Edition�Original Albumheading�#
1Joker Hysterical Facetrack �
2Marquis Cha-Chatrack �"
3Hard Life In Countrytrack �
4 Room To Livetrack �
5Detective Instincttrack �!
6Solicitor In Studiotrack �
7 Papal Visittrack � Bonus Tracksheading�#
8Joker Hysterical Facetrack �Medleyheading�!
9ATown Called Crappytrack �"
9BSolicitor In Studiotrack � -heading�#
10Hard Life In Countrytrack �!
11Detective Instincttrack �
12 Room To Livetrack �#
13Words Of Expectationtrack 
Expand Down
41 changes: 41 additions & 0 deletions cdtests/10313832.data
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@

���Split Decision Band��Split Decision Band ��b*�
�https://img.discogs.com/lP6szjj6aCMq_pLN20-KrDNLVco=/fit-in/600x600/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-10313832-1495165185-6872.jpeg.jpg secondary0��Ӆ:#
Now-Again Records
NA 5140-LP��:
Now-Again RecordsNA 7035��:&
Now-Again RecordsNA-5140-CD-ST��@HP����X��Ib
2017-04-28j-
LP
Album
Club Edition
NumberedVinyl1j$
7"
45 RPM
Club EditionVinyl1j
AlbumCD1�LPheading �
A1 Say Womantrack �
A2 Watching Outtrack �
A3 Night Dancertrack �
A4Dazedtrack �
A5Crystal Powdertrack �#
B1My Love Just For Youtrack �
B2Seekingtrack �
B3Shoot Your Worldtrack �
B4You're The Onetrack �6
B5'Split Decision Band Whats You To Groovetrack �)
B6Split Decision Band Groovetrack �7"heading �'
AWatching Out (45 Version)track �
BDazed (45 Version)track �CDheading �
1 Say Womantrack �
2 Watching Outtrack �
3 Night Dancertrack �
4Dazedtrack �
5Crystal Powdertrack �"
6My Love Just For Youtrack �
7Seekingtrack �
8Shoot Your Worldtrack �
9You're The Onetrack �6
10'Split Decision Band Wants You To Groovetrack �)
11Split Decision Band Groovetrack >�ؖ�10313832(8����@ H��bh���z@��՟��ޤ�����Ӆ�
Expand Down
Binary file added cdtests/10404409.data
Binary file not shown.
Binary file added cdtests/1075530.data
Binary file not shown.
154 changes: 154 additions & 0 deletions cdtests/11060000.data
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@

�?���%The Art Of German Psychedelic 1970-74� A.R. & Machines �4*�
�https://img.discogs.com/INBvY667SzyGQFz0t3eOAfAINCM=/fit-in/364x363/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-11060000-1509201952-1007.jpeg.jpgprimary*�
�https://img.discogs.com/RHrwwu_7ddYix1cVYJrm69_pROM=/fit-in/580x518/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-11060000-1509201960-3997.jpeg.jpg secondary*�
�https://img.discogs.com/sD4r_Fb73XhTeSQaJzY8LXJ4pOQ=/fit-in/442x446/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-11060000-1509201952-8750.jpeg.jpg secondary*�
�https://img.discogs.com/WPY5sUe-7Na2hGAY8f-iSQy_hzA=/fit-in/261x119/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-11060000-1509201948-7497.jpeg.jpg secondary*�
�https://img.discogs.com/A7AfadDGu96ewr7AeIjvXH795Fk=/fit-in/423x421/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-11060000-1509201957-2299.jpeg.jpg secondary*�
�https://img.discogs.com/YUCB8NIwIoy5TW9Rp6ovaJY2yLI=/fit-in/599x403/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-11060000-1509201955-5221.jpeg.jpg secondary*�
�https://img.discogs.com/UdWtc8p9Uec_wHArm9G9GQRdVeU=/fit-in/449x338/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-11060000-1509201952-4564.jpeg.jpg secondary*�
�https://img.discogs.com/UKkT8x9W-CctnChu1NC0tR8hL30=/fit-in/415x329/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-11060000-1509201960-3551.jpeg.jpg secondary*�
�https://img.discogs.com/tB132PsV7Up9Mu8IfgKxWBPYoRw=/fit-in/504x174/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-11060000-1509201957-3027.jpeg.jpg secondary*�
�https://img.discogs.com/1UGmXtZgsk1CN5bmAbzerjm4sy8=/fit-in/556x186/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-11060000-1509201956-7386.jpeg.jpg secondary*�
�https://img.discogs.com/5b-I8A80iIkRkunKWQPExwpNps0=/fit-in/425x422/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-11060000-1509201960-7187.jpeg.jpg secondary*�
�https://img.discogs.com/Mu1Os1Uh2CXmj0kwEoEhLHbuZpQ=/fit-in/592x348/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-11060000-1509201963-8202.jpeg.jpg secondary*�
�https://img.discogs.com/-XgZMLmX7WYuXTU7GfQ8ARHXWI0=/fit-in/572x341/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-11060000-1509201963-8405.jpeg.jpg secondary*�
�https://img.discogs.com/ln5jc4Y0eKwRRz7fuTbyBYShtpw=/fit-in/558x318/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-11060000-1509201964-2277.jpeg.jpg secondary*�
�https://img.discogs.com/ZRVryhYTAtSnBrJeWUHZF6telA4=/fit-in/524x274/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-11060000-1509201964-6121.jpeg.jpg secondary*�
�https://img.discogs.com/R1o-IjDIiNBC6qj5bdypzn6f2Co=/fit-in/588x582/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-11060000-1509201966-2498.jpeg.jpg secondary0��Ș:
BMG 538037740�@
HP����b
2017-10-27j#
Album
Reissue

RemasteredCD1j#
Album
Reissue

RemasteredCD1j#
Album
Reissue

RemasteredCD1j#
Album
Reissue

RemasteredCD1j#
Album
Reissue

RemasteredCD1j#
Album
Reissue

RemasteredCD1j
AlbumCD1j
AlbumCD1j
AlbumCD1j
AlbumCD1j
CompilationBox Set1x�Die Grüne Reiseheading�
1-1Globustrack �
1-2Im Selben Boottrack �
1-3Schönes Babylontrack �7
1-4'Ich Bin Dein Sänger, Du Bist Mein Liedtrack �
1-5Bodytrack �
1-6A Book´s Bluestrack �9
1-7)Als Hätt Ich Das Alles Schon Mal Gesehentrack �
1-8Cosmic Vibrationtrack �
1-9Come On, Peopletrack �0
1-10Wahrheit Und Wahrscheinlichkeittrack �Echoheading��
Einladung:index*
2-1 Einladungtrack *#
2-2Zu Neuen Abenteuerntrack *.
2-3Im Zauberwald Der Sieben Sinnetrack *(
2-4Im Irrgarten Des Geistestrack *&
2-5Beim Walzer Der Triebetrack *4
2-6$Unter Dem Schwarz-Grün-Roten Bannertrack *"
2-7Internationalhymnetrack ��Das Echo Der Gegenwartindex*
2-8Erwachen Am Ufertrack *;
2-9+Vor Dem Haus Am Fuße Des Wachsenden Bergestrack *
2-10Signaletrack */
2-11Wissen Ist Frühling Im Herbsttrack *)
2-12Eisen-Laura Mit Der Lyratrack ��Das Echo Der Zeitindex*
2-13
Ich Staunetrack *"
2-14Auf Dem Schlittentrack *"
2-15Ins Echo Der Zeittrack *"
2-16Regenbögen Hinabtrack *3
2-17"Durch Fühlbares, Messbares Nichtstrack *2
2-18!Ewiger Abschied Von Der Lila Gluttrack ��Das Echo Der Zukunftindex*
2-19Ahnungentrack *1
2-20 Beim Tanz Der Elektrischen Windetrack *3
2-21"Vor Der Geburt Der Neuen Dimensiontrack *.
2-22Interstellare Kommunikationentrack *.
2-23Das Öffnen Des Großen Torestrack *,
2-24Der Traum Vom Gleichgewichttrack ��Das Echo Der Vergangenheitindex*,
2-25Erinnerungen An Übermorgentrack *
2-26 Ad Libidotrack *
2-27Ego Legotrack *9
2-28(Brennt Wie Ein Licht Am Ende Des Tummelstrack �AR 3heading�1
3-1!Warum Peter Nur Noch Ferien Machttrack �9
3-2)Tarzans Abenteuer Im Sommerschlussverkauftrack �(
3-310 Jahre Lebenslänglichtrack �+
3-4Die Tochter Des Frostriesentrack �(
3-5Die Eigentümer Der Welttrack �1
3-6!Heute Ist Es Wärmer Als Draussentrack �5
3-7%Auf Deutsch Heisst Das Gewissensbissetrack �&
3-8Wie Ich Mir So Ich Dirtrack �#
3-9Alles Geht Nach Goatrack �A. R. IVheading��Vita:index*/
4-1Höhlenforscher + Vogelmenschentrack *!
4-2Der Mann In Nappatrack *.
4-3Dünn Ist Die Haut Der Ekstasetrack �DAqua:index*4
4-4$Jeder Tropfen Träumt Vom Meer (H2O)track ��Live Im Studio Bonus:index*)
4-5Aufwärmen Im Vogelkäfigtrack *%
4-6Geist In Der Maschinetrack *
4-7Die Nacht Davortrack *(
4-8Der Käfig Ist Geöffnettrack */
4-9Erinnerungen An Die Nacht Davortrack �
Autovisionheading�
5-1 Eisenpferdetrack �-
5-2Tanz Der Vögel In Den Windentrack �
5-3 Drei In Einstrack �
5-4 Turbulenzentrack �
5-5 Jay Guru Devtrack �5
5-6%Kopf In Den Wolken-Beine Auf Der Erdetrack �Erholungheading�
6-1
Gute Reisetrack �
6-2Alles Inklusivetrack �
6-3Erholungtrack �
6-4 Atmosphäretrack �0
6-5 Heute Ist Das Gestern Von Morgentrack �-
6-6Die Zukunft Der Vergangenheittrack �The Cologne Concertheading�#
7-1Domglocken Auf Acidtrack �!
7-2Heidnische Gebetetrack �$Transformation Remixes 96heading�&
8-1Den Träumen Hinterhertrack �
8-2Esoteric Erictrack �$
8-3Hinfort Mit Dem Windtrack �
8-4 Jay Guru Devtrack �1
8-5!In Der Herberge Zum Sechsten Sinntrack �
8-6 Prickel Pittrack �(
8-7Im Irrgarten Des Geistestrack �
8-8 Saxoflow*track �?414 Pieces For Guitar And Echo Chamber The Pure Stuffheading�
9-1Melodi Echolalietrack �+
9-2Verloren Im Spiegelkabinetttrack �)
9-3Schaukelstuhl Auf Wolke 7track �+
9-4Meerjungfrau Im Whiskeyglastrack �.
9-5Heile Welt Mit Kleinen Fehlerntrack �/
9-6Innige Umarmung Auf Dünnem Eistrack �%
9-7Hier Ist Dein Weckruftrack �
9-8Schiwago Shankartrack �
9-9 Echo Boogietrack �#
9-10Innovation Shuffletrack �'
9-11Schwungvolle Botschafttrack �4
9-12#Erwachen Jenseits Von Gut Und Bösetrack �(
9-13Psychedelia Instrumeniatrack �!
9-14Der Sanfte Wuchstrack �%Virtual Journey DJ Aspectsheading�&
10-1Hier Ist Dein Weckruftrack �'
10-2Schwungvolle Botschafttrack �,
10-3Meerjungfrau Im Whiskeyglastrack �!
10-4Schiwago Shankartrack �*
10-5Schaukelstuhl Auf Wolke 7track �
10-6 Echo Boogietrack �/
10-7Heile Welt Mit Kleinen Fehlerntrack �,
10-8Verloren Im Spiegelkabinetttrack �����110600008����@H�4h�Ӊ���@�fNo Quota (857449): rpc error: code = Unknown desc = Cannot find master for recordsorganiser on server �������б����Ș���~�����
Expand Down
Binary file added cdtests/1310779.data
Binary file not shown.
Binary file added cdtests/1997688.file
Binary file not shown.
Binary file added cdtests/4467031.data
Binary file not shown.
28 changes: 28 additions & 0 deletions cdtests/565473.file
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
��"Tatay��Gorky's Zygotic Mynci*�
�https://img.discogs.com/f9uCQoGwL3aUsLvS0zNQYmKxFRQ=/fit-in/537x537/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-565473-1132181513.jpeg.jpgprimary*�
�https://img.discogs.com/KZ6Dz0KynDIQjNFvUND92GAcU2g=/fit-in/600x472/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-565473-1132181531.jpeg.jpg secondary*�
�https://img.discogs.com/zGdaIZvfZd9AsY2GdUN3xymepA4=/fit-in/600x310/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-565473-1489224719-9298.jpeg.jpg secondary*�
�https://img.discogs.com/PwJpCxr7ZOseo-NljsFWS5kpIso=/fit-in/600x303/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-565473-1489224701-7486.jpeg.jpg secondary*�
�https://img.discogs.com/FlKmYylvLY-Y4voPPociA00hvmc=/fit-in/600x574/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-565473-1489224678-8038.jpeg.jpg secondary*�
�https://img.discogs.com/upp3EDrk4ZROYTdGg037kjoU-vk=/fit-in/600x591/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/R-565473-1489224687-7085.jpeg.jpg secondary:
Ankst ANKST 047�:
Ankst ankst 047cd�@Xˀb
1994-03-00j
AlbumCD1�
1Thema O Cartreftrack �)
2Beth Sy'n Digwydd I'r Fuwchtrack �
3Tataytrack �
4Y Ffordd Orentrack �
5Gwres Prynhawntrack �'
6Amsermaemaiyndod / Cinematrack �
7 O, Carolinetrack �
8 Naw. E. Pimptrack �
9 Kevin Ayerstrack �-
10When You Hear The Captain Singtrack �
11O, Caroline IItrack �
12Tatay (Moog Mix)track �13 Anna Aperaheading�
a
Anna Aperatrack �
b Gegin Nostrack �
cSilff Ffenesttrack �
d Backward Dogtrack 
Expand Down
125 changes: 125 additions & 0 deletions recordutils.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
package main

import (
"fmt"
"regexp"
"strings"

pbgd "github.com/brotherlogic/godiscogs"
)

type TrackSet struct {
tracks []*pbgd.Track
Position string
Disk string
Format string
}

func shouldMerge(t1, t2 *TrackSet) bool {
matcher := regexp.MustCompile("^[a-z]")
if matcher.MatchString(t1.tracks[0].Position) && matcher.MatchString(t2.tracks[0].Position) {
return true
}

cdJoin := regexp.MustCompile("^\\d[A-Z]")
if cdJoin.MatchString(t1.tracks[0].Position) && cdJoin.MatchString(t2.tracks[0].Position) {
if t1.tracks[0].Position[0] == t2.tracks[0].Position[0] {
return true
}
}

return false
}

func flatten(tracklist []*pbgd.Track) []*pbgd.Track {
tracks := make([]*pbgd.Track, 0)
for _, track := range tracklist {
tracks = append(tracks, track)
tracks = append(tracks, flatten(track.SubTracks)...)
}
return tracks
}

//TrackExtract extracts a trackset from a release
func TrackExtract(r *pbgd.Release) []*TrackSet {
trackset := make([]*TrackSet, 0)

multiFormat := false
formatCounts := make(map[string]int)
for _, form := range r.GetFormats() {
if form.GetName() != "Box Set" {
formatCounts[form.GetName()]++
}
}

if len(formatCounts) > 1 {
multiFormat = true
}

disk := 1
if multiFormat && r.Tracklist[0].TrackType == pbgd.Track_HEADING {
disk = 0
}

currTrack := 1
if multiFormat {
currTrack = 1
}

currFormat := r.GetFormats()[0].Name
currDisk := "1"[0]

currStart := "A"[0]
if r.Tracklist[0].TrackType == pbgd.Track_TRACK {
currStart = r.Tracklist[0].Position[0]
} else {
currStart = r.Tracklist[1].Position[0]
}
for _, track := range flatten(r.Tracklist) {
if track.TrackType == pbgd.Track_HEADING && multiFormat {
disk++
currTrack = 1
currFormat = track.Title
} else if track.TrackType == pbgd.Track_TRACK {
if track.Position[0] != currStart {
if track.Position[0] == 'C' || track.Position[0] == 'E' {
disk++
}
currStart = track.Position[0]
}
if strings.Contains(track.Position, "-") && track.Position[0] != currDisk {
disk++
currTrack = 1
currDisk = track.Position[0]
}
if track.Position != "Video" {
trackset = append(trackset, &TrackSet{Format: currFormat, Disk: fmt.Sprintf("%v", disk), tracks: []*pbgd.Track{track}, Position: fmt.Sprintf("%v", currTrack)})
currTrack++
}
}
}

//Perform la merge
found := true
for found {
found = false
for i := range trackset[1:] {
if shouldMerge(trackset[i], trackset[i+1]) {
trackset[i].tracks = append(trackset[i].tracks, trackset[i+1].tracks...)
trackset = append(trackset[:i+1], trackset[i+2:]...)
found = true
break
}
}
}
return trackset
}

//GetTitle of trackset
func GetTitle(t *TrackSet) string {
result := t.tracks[0].Title
for _, tr := range t.tracks[1:] {
result += " / " + tr.Title
}
return result
}
Loading

0 comments on commit 29a43ae

Please sign in to comment.