[WIP] music platform user data scraper
teal-fm atproto

bring back gencbor, thanks streamplace for the solution!

Changed files
+926 -20
api
util
gencbor
+18 -4
Makefile
··· 1 - .PHONY: lexgen-types 2 - lexgen-types: 1 + .PHONY: go-lexicons 2 + go-lexicons: 3 3 rm -rf ../atproto \ 4 4 && rm -rf ./api/cbor/cbor_gen.go \ 5 5 && git clone git@github.com:bluesky-social/atproto ../atproto \ 6 - && go run github.com/bluesky-social/indigo/cmd/lexgen \ 6 + && rm -rf ./api/teal \ 7 + && mkdir -p ./api/teal \ 8 + && $(MAKE) lexgen \ 9 + && sed -i .bak 's/\tutil/\/\/\tutil/' $$(find ./api/teal -type f) \ 10 + && go run golang.org/x/tools/cmd/goimports@latest -w $$(find ./api/teal -type f) \ 11 + && go run ./util/gencbor/gencbor.go \ 12 + && $(MAKE) lexgen \ 13 + && find . | grep bak$$ | xargs rm 14 + 15 + .PHONY: lexgen 16 + lexgen: 17 + $(MAKE) lexgen-types 18 + 19 + .PHONY: lexgen-types 20 + lexgen-types: 21 + go run github.com/bluesky-social/indigo/cmd/lexgen \ 7 22 --build-file ./lexcfg.json \ 8 23 ../atproto/lexicons \ 9 24 ./lexicons/teal \ 10 - && go run ./util/gencbor/gencbor.go
+889
api/teal/cbor_gen.go
··· 1 + // Code generated by github.com/whyrusleeping/cbor-gen. DO NOT EDIT. 2 + 3 + package teal 4 + 5 + import ( 6 + "fmt" 7 + "io" 8 + "math" 9 + "sort" 10 + 11 + cid "github.com/ipfs/go-cid" 12 + cbg "github.com/whyrusleeping/cbor-gen" 13 + xerrors "golang.org/x/xerrors" 14 + ) 15 + 16 + var _ = xerrors.Errorf 17 + var _ = cid.Undef 18 + var _ = math.E 19 + var _ = sort.Sort 20 + 21 + func (t *AlphaFeedPlay) MarshalCBOR(w io.Writer) error { 22 + if t == nil { 23 + _, err := w.Write(cbg.CborNull) 24 + return err 25 + } 26 + 27 + cw := cbg.NewCborWriter(w) 28 + fieldCount := 14 29 + 30 + if t.ArtistMbIds == nil { 31 + fieldCount-- 32 + } 33 + 34 + if t.Duration == nil { 35 + fieldCount-- 36 + } 37 + 38 + if t.Isrc == nil { 39 + fieldCount-- 40 + } 41 + 42 + if t.MusicServiceBaseDomain == nil { 43 + fieldCount-- 44 + } 45 + 46 + if t.OriginUrl == nil { 47 + fieldCount-- 48 + } 49 + 50 + if t.PlayedTime == nil { 51 + fieldCount-- 52 + } 53 + 54 + if t.RecordingMbId == nil { 55 + fieldCount-- 56 + } 57 + 58 + if t.ReleaseMbId == nil { 59 + fieldCount-- 60 + } 61 + 62 + if t.ReleaseName == nil { 63 + fieldCount-- 64 + } 65 + 66 + if t.SubmissionClientAgent == nil { 67 + fieldCount-- 68 + } 69 + 70 + if t.TrackMbId == nil { 71 + fieldCount-- 72 + } 73 + 74 + if _, err := cw.Write(cbg.CborEncodeMajorType(cbg.MajMap, uint64(fieldCount))); err != nil { 75 + return err 76 + } 77 + 78 + // t.Isrc (string) (string) 79 + if t.Isrc != nil { 80 + 81 + if len("isrc") > 1000000 { 82 + return xerrors.Errorf("Value in field \"isrc\" was too long") 83 + } 84 + 85 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("isrc"))); err != nil { 86 + return err 87 + } 88 + if _, err := cw.WriteString(string("isrc")); err != nil { 89 + return err 90 + } 91 + 92 + if t.Isrc == nil { 93 + if _, err := cw.Write(cbg.CborNull); err != nil { 94 + return err 95 + } 96 + } else { 97 + if len(*t.Isrc) > 1000000 { 98 + return xerrors.Errorf("Value in field t.Isrc was too long") 99 + } 100 + 101 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(*t.Isrc))); err != nil { 102 + return err 103 + } 104 + if _, err := cw.WriteString(string(*t.Isrc)); err != nil { 105 + return err 106 + } 107 + } 108 + } 109 + 110 + // t.LexiconTypeID (string) (string) 111 + if len("$type") > 1000000 { 112 + return xerrors.Errorf("Value in field \"$type\" was too long") 113 + } 114 + 115 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("$type"))); err != nil { 116 + return err 117 + } 118 + if _, err := cw.WriteString(string("$type")); err != nil { 119 + return err 120 + } 121 + 122 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("fm.teal.alpha.feed.play"))); err != nil { 123 + return err 124 + } 125 + if _, err := cw.WriteString(string("fm.teal.alpha.feed.play")); err != nil { 126 + return err 127 + } 128 + 129 + // t.Duration (int64) (int64) 130 + if t.Duration != nil { 131 + 132 + if len("duration") > 1000000 { 133 + return xerrors.Errorf("Value in field \"duration\" was too long") 134 + } 135 + 136 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("duration"))); err != nil { 137 + return err 138 + } 139 + if _, err := cw.WriteString(string("duration")); err != nil { 140 + return err 141 + } 142 + 143 + if t.Duration == nil { 144 + if _, err := cw.Write(cbg.CborNull); err != nil { 145 + return err 146 + } 147 + } else { 148 + if *t.Duration >= 0 { 149 + if err := cw.WriteMajorTypeHeader(cbg.MajUnsignedInt, uint64(*t.Duration)); err != nil { 150 + return err 151 + } 152 + } else { 153 + if err := cw.WriteMajorTypeHeader(cbg.MajNegativeInt, uint64(-*t.Duration-1)); err != nil { 154 + return err 155 + } 156 + } 157 + } 158 + 159 + } 160 + 161 + // t.OriginUrl (string) (string) 162 + if t.OriginUrl != nil { 163 + 164 + if len("originUrl") > 1000000 { 165 + return xerrors.Errorf("Value in field \"originUrl\" was too long") 166 + } 167 + 168 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("originUrl"))); err != nil { 169 + return err 170 + } 171 + if _, err := cw.WriteString(string("originUrl")); err != nil { 172 + return err 173 + } 174 + 175 + if t.OriginUrl == nil { 176 + if _, err := cw.Write(cbg.CborNull); err != nil { 177 + return err 178 + } 179 + } else { 180 + if len(*t.OriginUrl) > 1000000 { 181 + return xerrors.Errorf("Value in field t.OriginUrl was too long") 182 + } 183 + 184 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(*t.OriginUrl))); err != nil { 185 + return err 186 + } 187 + if _, err := cw.WriteString(string(*t.OriginUrl)); err != nil { 188 + return err 189 + } 190 + } 191 + } 192 + 193 + // t.TrackMbId (string) (string) 194 + if t.TrackMbId != nil { 195 + 196 + if len("trackMbId") > 1000000 { 197 + return xerrors.Errorf("Value in field \"trackMbId\" was too long") 198 + } 199 + 200 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("trackMbId"))); err != nil { 201 + return err 202 + } 203 + if _, err := cw.WriteString(string("trackMbId")); err != nil { 204 + return err 205 + } 206 + 207 + if t.TrackMbId == nil { 208 + if _, err := cw.Write(cbg.CborNull); err != nil { 209 + return err 210 + } 211 + } else { 212 + if len(*t.TrackMbId) > 1000000 { 213 + return xerrors.Errorf("Value in field t.TrackMbId was too long") 214 + } 215 + 216 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(*t.TrackMbId))); err != nil { 217 + return err 218 + } 219 + if _, err := cw.WriteString(string(*t.TrackMbId)); err != nil { 220 + return err 221 + } 222 + } 223 + } 224 + 225 + // t.TrackName (string) (string) 226 + if len("trackName") > 1000000 { 227 + return xerrors.Errorf("Value in field \"trackName\" was too long") 228 + } 229 + 230 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("trackName"))); err != nil { 231 + return err 232 + } 233 + if _, err := cw.WriteString(string("trackName")); err != nil { 234 + return err 235 + } 236 + 237 + if len(t.TrackName) > 1000000 { 238 + return xerrors.Errorf("Value in field t.TrackName was too long") 239 + } 240 + 241 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.TrackName))); err != nil { 242 + return err 243 + } 244 + if _, err := cw.WriteString(string(t.TrackName)); err != nil { 245 + return err 246 + } 247 + 248 + // t.PlayedTime (string) (string) 249 + if t.PlayedTime != nil { 250 + 251 + if len("playedTime") > 1000000 { 252 + return xerrors.Errorf("Value in field \"playedTime\" was too long") 253 + } 254 + 255 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("playedTime"))); err != nil { 256 + return err 257 + } 258 + if _, err := cw.WriteString(string("playedTime")); err != nil { 259 + return err 260 + } 261 + 262 + if t.PlayedTime == nil { 263 + if _, err := cw.Write(cbg.CborNull); err != nil { 264 + return err 265 + } 266 + } else { 267 + if len(*t.PlayedTime) > 1000000 { 268 + return xerrors.Errorf("Value in field t.PlayedTime was too long") 269 + } 270 + 271 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(*t.PlayedTime))); err != nil { 272 + return err 273 + } 274 + if _, err := cw.WriteString(string(*t.PlayedTime)); err != nil { 275 + return err 276 + } 277 + } 278 + } 279 + 280 + // t.ArtistMbIds ([]string) (slice) 281 + if t.ArtistMbIds != nil { 282 + 283 + if len("artistMbIds") > 1000000 { 284 + return xerrors.Errorf("Value in field \"artistMbIds\" was too long") 285 + } 286 + 287 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("artistMbIds"))); err != nil { 288 + return err 289 + } 290 + if _, err := cw.WriteString(string("artistMbIds")); err != nil { 291 + return err 292 + } 293 + 294 + if len(t.ArtistMbIds) > 8192 { 295 + return xerrors.Errorf("Slice value in field t.ArtistMbIds was too long") 296 + } 297 + 298 + if err := cw.WriteMajorTypeHeader(cbg.MajArray, uint64(len(t.ArtistMbIds))); err != nil { 299 + return err 300 + } 301 + for _, v := range t.ArtistMbIds { 302 + if len(v) > 1000000 { 303 + return xerrors.Errorf("Value in field v was too long") 304 + } 305 + 306 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(v))); err != nil { 307 + return err 308 + } 309 + if _, err := cw.WriteString(string(v)); err != nil { 310 + return err 311 + } 312 + 313 + } 314 + } 315 + 316 + // t.ArtistNames ([]string) (slice) 317 + if len("artistNames") > 1000000 { 318 + return xerrors.Errorf("Value in field \"artistNames\" was too long") 319 + } 320 + 321 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("artistNames"))); err != nil { 322 + return err 323 + } 324 + if _, err := cw.WriteString(string("artistNames")); err != nil { 325 + return err 326 + } 327 + 328 + if len(t.ArtistNames) > 8192 { 329 + return xerrors.Errorf("Slice value in field t.ArtistNames was too long") 330 + } 331 + 332 + if err := cw.WriteMajorTypeHeader(cbg.MajArray, uint64(len(t.ArtistNames))); err != nil { 333 + return err 334 + } 335 + for _, v := range t.ArtistNames { 336 + if len(v) > 1000000 { 337 + return xerrors.Errorf("Value in field v was too long") 338 + } 339 + 340 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(v))); err != nil { 341 + return err 342 + } 343 + if _, err := cw.WriteString(string(v)); err != nil { 344 + return err 345 + } 346 + 347 + } 348 + 349 + // t.ReleaseMbId (string) (string) 350 + if t.ReleaseMbId != nil { 351 + 352 + if len("releaseMbId") > 1000000 { 353 + return xerrors.Errorf("Value in field \"releaseMbId\" was too long") 354 + } 355 + 356 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("releaseMbId"))); err != nil { 357 + return err 358 + } 359 + if _, err := cw.WriteString(string("releaseMbId")); err != nil { 360 + return err 361 + } 362 + 363 + if t.ReleaseMbId == nil { 364 + if _, err := cw.Write(cbg.CborNull); err != nil { 365 + return err 366 + } 367 + } else { 368 + if len(*t.ReleaseMbId) > 1000000 { 369 + return xerrors.Errorf("Value in field t.ReleaseMbId was too long") 370 + } 371 + 372 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(*t.ReleaseMbId))); err != nil { 373 + return err 374 + } 375 + if _, err := cw.WriteString(string(*t.ReleaseMbId)); err != nil { 376 + return err 377 + } 378 + } 379 + } 380 + 381 + // t.ReleaseName (string) (string) 382 + if t.ReleaseName != nil { 383 + 384 + if len("releaseName") > 1000000 { 385 + return xerrors.Errorf("Value in field \"releaseName\" was too long") 386 + } 387 + 388 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("releaseName"))); err != nil { 389 + return err 390 + } 391 + if _, err := cw.WriteString(string("releaseName")); err != nil { 392 + return err 393 + } 394 + 395 + if t.ReleaseName == nil { 396 + if _, err := cw.Write(cbg.CborNull); err != nil { 397 + return err 398 + } 399 + } else { 400 + if len(*t.ReleaseName) > 1000000 { 401 + return xerrors.Errorf("Value in field t.ReleaseName was too long") 402 + } 403 + 404 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(*t.ReleaseName))); err != nil { 405 + return err 406 + } 407 + if _, err := cw.WriteString(string(*t.ReleaseName)); err != nil { 408 + return err 409 + } 410 + } 411 + } 412 + 413 + // t.RecordingMbId (string) (string) 414 + if t.RecordingMbId != nil { 415 + 416 + if len("recordingMbId") > 1000000 { 417 + return xerrors.Errorf("Value in field \"recordingMbId\" was too long") 418 + } 419 + 420 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("recordingMbId"))); err != nil { 421 + return err 422 + } 423 + if _, err := cw.WriteString(string("recordingMbId")); err != nil { 424 + return err 425 + } 426 + 427 + if t.RecordingMbId == nil { 428 + if _, err := cw.Write(cbg.CborNull); err != nil { 429 + return err 430 + } 431 + } else { 432 + if len(*t.RecordingMbId) > 1000000 { 433 + return xerrors.Errorf("Value in field t.RecordingMbId was too long") 434 + } 435 + 436 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(*t.RecordingMbId))); err != nil { 437 + return err 438 + } 439 + if _, err := cw.WriteString(string(*t.RecordingMbId)); err != nil { 440 + return err 441 + } 442 + } 443 + } 444 + 445 + // t.SubmissionClientAgent (string) (string) 446 + if t.SubmissionClientAgent != nil { 447 + 448 + if len("submissionClientAgent") > 1000000 { 449 + return xerrors.Errorf("Value in field \"submissionClientAgent\" was too long") 450 + } 451 + 452 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("submissionClientAgent"))); err != nil { 453 + return err 454 + } 455 + if _, err := cw.WriteString(string("submissionClientAgent")); err != nil { 456 + return err 457 + } 458 + 459 + if t.SubmissionClientAgent == nil { 460 + if _, err := cw.Write(cbg.CborNull); err != nil { 461 + return err 462 + } 463 + } else { 464 + if len(*t.SubmissionClientAgent) > 1000000 { 465 + return xerrors.Errorf("Value in field t.SubmissionClientAgent was too long") 466 + } 467 + 468 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(*t.SubmissionClientAgent))); err != nil { 469 + return err 470 + } 471 + if _, err := cw.WriteString(string(*t.SubmissionClientAgent)); err != nil { 472 + return err 473 + } 474 + } 475 + } 476 + 477 + // t.MusicServiceBaseDomain (string) (string) 478 + if t.MusicServiceBaseDomain != nil { 479 + 480 + if len("musicServiceBaseDomain") > 1000000 { 481 + return xerrors.Errorf("Value in field \"musicServiceBaseDomain\" was too long") 482 + } 483 + 484 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("musicServiceBaseDomain"))); err != nil { 485 + return err 486 + } 487 + if _, err := cw.WriteString(string("musicServiceBaseDomain")); err != nil { 488 + return err 489 + } 490 + 491 + if t.MusicServiceBaseDomain == nil { 492 + if _, err := cw.Write(cbg.CborNull); err != nil { 493 + return err 494 + } 495 + } else { 496 + if len(*t.MusicServiceBaseDomain) > 1000000 { 497 + return xerrors.Errorf("Value in field t.MusicServiceBaseDomain was too long") 498 + } 499 + 500 + if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(*t.MusicServiceBaseDomain))); err != nil { 501 + return err 502 + } 503 + if _, err := cw.WriteString(string(*t.MusicServiceBaseDomain)); err != nil { 504 + return err 505 + } 506 + } 507 + } 508 + return nil 509 + } 510 + 511 + func (t *AlphaFeedPlay) UnmarshalCBOR(r io.Reader) (err error) { 512 + *t = AlphaFeedPlay{} 513 + 514 + cr := cbg.NewCborReader(r) 515 + 516 + maj, extra, err := cr.ReadHeader() 517 + if err != nil { 518 + return err 519 + } 520 + defer func() { 521 + if err == io.EOF { 522 + err = io.ErrUnexpectedEOF 523 + } 524 + }() 525 + 526 + if maj != cbg.MajMap { 527 + return fmt.Errorf("cbor input should be of type map") 528 + } 529 + 530 + if extra > cbg.MaxLength { 531 + return fmt.Errorf("AlphaFeedPlay: map struct too large (%d)", extra) 532 + } 533 + 534 + n := extra 535 + 536 + nameBuf := make([]byte, 22) 537 + for i := uint64(0); i < n; i++ { 538 + nameLen, ok, err := cbg.ReadFullStringIntoBuf(cr, nameBuf, 1000000) 539 + if err != nil { 540 + return err 541 + } 542 + 543 + if !ok { 544 + // Field doesn't exist on this type, so ignore it 545 + if err := cbg.ScanForLinks(cr, func(cid.Cid) {}); err != nil { 546 + return err 547 + } 548 + continue 549 + } 550 + 551 + switch string(nameBuf[:nameLen]) { 552 + // t.Isrc (string) (string) 553 + case "isrc": 554 + 555 + { 556 + b, err := cr.ReadByte() 557 + if err != nil { 558 + return err 559 + } 560 + if b != cbg.CborNull[0] { 561 + if err := cr.UnreadByte(); err != nil { 562 + return err 563 + } 564 + 565 + sval, err := cbg.ReadStringWithMax(cr, 1000000) 566 + if err != nil { 567 + return err 568 + } 569 + 570 + t.Isrc = (*string)(&sval) 571 + } 572 + } 573 + // t.LexiconTypeID (string) (string) 574 + case "$type": 575 + 576 + { 577 + sval, err := cbg.ReadStringWithMax(cr, 1000000) 578 + if err != nil { 579 + return err 580 + } 581 + 582 + t.LexiconTypeID = string(sval) 583 + } 584 + // t.Duration (int64) (int64) 585 + case "duration": 586 + { 587 + 588 + b, err := cr.ReadByte() 589 + if err != nil { 590 + return err 591 + } 592 + if b != cbg.CborNull[0] { 593 + if err := cr.UnreadByte(); err != nil { 594 + return err 595 + } 596 + maj, extra, err := cr.ReadHeader() 597 + if err != nil { 598 + return err 599 + } 600 + var extraI int64 601 + switch maj { 602 + case cbg.MajUnsignedInt: 603 + extraI = int64(extra) 604 + if extraI < 0 { 605 + return fmt.Errorf("int64 positive overflow") 606 + } 607 + case cbg.MajNegativeInt: 608 + extraI = int64(extra) 609 + if extraI < 0 { 610 + return fmt.Errorf("int64 negative overflow") 611 + } 612 + extraI = -1 - extraI 613 + default: 614 + return fmt.Errorf("wrong type for int64 field: %d", maj) 615 + } 616 + 617 + t.Duration = (*int64)(&extraI) 618 + } 619 + } 620 + // t.OriginUrl (string) (string) 621 + case "originUrl": 622 + 623 + { 624 + b, err := cr.ReadByte() 625 + if err != nil { 626 + return err 627 + } 628 + if b != cbg.CborNull[0] { 629 + if err := cr.UnreadByte(); err != nil { 630 + return err 631 + } 632 + 633 + sval, err := cbg.ReadStringWithMax(cr, 1000000) 634 + if err != nil { 635 + return err 636 + } 637 + 638 + t.OriginUrl = (*string)(&sval) 639 + } 640 + } 641 + // t.TrackMbId (string) (string) 642 + case "trackMbId": 643 + 644 + { 645 + b, err := cr.ReadByte() 646 + if err != nil { 647 + return err 648 + } 649 + if b != cbg.CborNull[0] { 650 + if err := cr.UnreadByte(); err != nil { 651 + return err 652 + } 653 + 654 + sval, err := cbg.ReadStringWithMax(cr, 1000000) 655 + if err != nil { 656 + return err 657 + } 658 + 659 + t.TrackMbId = (*string)(&sval) 660 + } 661 + } 662 + // t.TrackName (string) (string) 663 + case "trackName": 664 + 665 + { 666 + sval, err := cbg.ReadStringWithMax(cr, 1000000) 667 + if err != nil { 668 + return err 669 + } 670 + 671 + t.TrackName = string(sval) 672 + } 673 + // t.PlayedTime (string) (string) 674 + case "playedTime": 675 + 676 + { 677 + b, err := cr.ReadByte() 678 + if err != nil { 679 + return err 680 + } 681 + if b != cbg.CborNull[0] { 682 + if err := cr.UnreadByte(); err != nil { 683 + return err 684 + } 685 + 686 + sval, err := cbg.ReadStringWithMax(cr, 1000000) 687 + if err != nil { 688 + return err 689 + } 690 + 691 + t.PlayedTime = (*string)(&sval) 692 + } 693 + } 694 + // t.ArtistMbIds ([]string) (slice) 695 + case "artistMbIds": 696 + 697 + maj, extra, err = cr.ReadHeader() 698 + if err != nil { 699 + return err 700 + } 701 + 702 + if extra > 8192 { 703 + return fmt.Errorf("t.ArtistMbIds: array too large (%d)", extra) 704 + } 705 + 706 + if maj != cbg.MajArray { 707 + return fmt.Errorf("expected cbor array") 708 + } 709 + 710 + if extra > 0 { 711 + t.ArtistMbIds = make([]string, extra) 712 + } 713 + 714 + for i := 0; i < int(extra); i++ { 715 + { 716 + var maj byte 717 + var extra uint64 718 + var err error 719 + _ = maj 720 + _ = extra 721 + _ = err 722 + 723 + { 724 + sval, err := cbg.ReadStringWithMax(cr, 1000000) 725 + if err != nil { 726 + return err 727 + } 728 + 729 + t.ArtistMbIds[i] = string(sval) 730 + } 731 + 732 + } 733 + } 734 + // t.ArtistNames ([]string) (slice) 735 + case "artistNames": 736 + 737 + maj, extra, err = cr.ReadHeader() 738 + if err != nil { 739 + return err 740 + } 741 + 742 + if extra > 8192 { 743 + return fmt.Errorf("t.ArtistNames: array too large (%d)", extra) 744 + } 745 + 746 + if maj != cbg.MajArray { 747 + return fmt.Errorf("expected cbor array") 748 + } 749 + 750 + if extra > 0 { 751 + t.ArtistNames = make([]string, extra) 752 + } 753 + 754 + for i := 0; i < int(extra); i++ { 755 + { 756 + var maj byte 757 + var extra uint64 758 + var err error 759 + _ = maj 760 + _ = extra 761 + _ = err 762 + 763 + { 764 + sval, err := cbg.ReadStringWithMax(cr, 1000000) 765 + if err != nil { 766 + return err 767 + } 768 + 769 + t.ArtistNames[i] = string(sval) 770 + } 771 + 772 + } 773 + } 774 + // t.ReleaseMbId (string) (string) 775 + case "releaseMbId": 776 + 777 + { 778 + b, err := cr.ReadByte() 779 + if err != nil { 780 + return err 781 + } 782 + if b != cbg.CborNull[0] { 783 + if err := cr.UnreadByte(); err != nil { 784 + return err 785 + } 786 + 787 + sval, err := cbg.ReadStringWithMax(cr, 1000000) 788 + if err != nil { 789 + return err 790 + } 791 + 792 + t.ReleaseMbId = (*string)(&sval) 793 + } 794 + } 795 + // t.ReleaseName (string) (string) 796 + case "releaseName": 797 + 798 + { 799 + b, err := cr.ReadByte() 800 + if err != nil { 801 + return err 802 + } 803 + if b != cbg.CborNull[0] { 804 + if err := cr.UnreadByte(); err != nil { 805 + return err 806 + } 807 + 808 + sval, err := cbg.ReadStringWithMax(cr, 1000000) 809 + if err != nil { 810 + return err 811 + } 812 + 813 + t.ReleaseName = (*string)(&sval) 814 + } 815 + } 816 + // t.RecordingMbId (string) (string) 817 + case "recordingMbId": 818 + 819 + { 820 + b, err := cr.ReadByte() 821 + if err != nil { 822 + return err 823 + } 824 + if b != cbg.CborNull[0] { 825 + if err := cr.UnreadByte(); err != nil { 826 + return err 827 + } 828 + 829 + sval, err := cbg.ReadStringWithMax(cr, 1000000) 830 + if err != nil { 831 + return err 832 + } 833 + 834 + t.RecordingMbId = (*string)(&sval) 835 + } 836 + } 837 + // t.SubmissionClientAgent (string) (string) 838 + case "submissionClientAgent": 839 + 840 + { 841 + b, err := cr.ReadByte() 842 + if err != nil { 843 + return err 844 + } 845 + if b != cbg.CborNull[0] { 846 + if err := cr.UnreadByte(); err != nil { 847 + return err 848 + } 849 + 850 + sval, err := cbg.ReadStringWithMax(cr, 1000000) 851 + if err != nil { 852 + return err 853 + } 854 + 855 + t.SubmissionClientAgent = (*string)(&sval) 856 + } 857 + } 858 + // t.MusicServiceBaseDomain (string) (string) 859 + case "musicServiceBaseDomain": 860 + 861 + { 862 + b, err := cr.ReadByte() 863 + if err != nil { 864 + return err 865 + } 866 + if b != cbg.CborNull[0] { 867 + if err := cr.UnreadByte(); err != nil { 868 + return err 869 + } 870 + 871 + sval, err := cbg.ReadStringWithMax(cr, 1000000) 872 + if err != nil { 873 + return err 874 + } 875 + 876 + t.MusicServiceBaseDomain = (*string)(&sval) 877 + } 878 + } 879 + 880 + default: 881 + // Field doesn't exist on this type, so ignore it 882 + if err := cbg.ScanForLinks(r, func(cid.Cid) {}); err != nil { 883 + return err 884 + } 885 + } 886 + } 887 + 888 + return nil 889 + }
+19 -16
util/gencbor/gencbor.go
··· 1 1 package main 2 2 3 3 import ( 4 - "reflect" 4 + "reflect" 5 5 6 - "github.com/bluesky-social/indigo/mst" 7 - "github.com/teal-fm/piper/api/teal" 6 + "github.com/bluesky-social/indigo/mst" 7 + "github.com/teal-fm/piper/api/teal" 8 8 9 - cbg "github.com/whyrusleeping/cbor-gen" 9 + cbg "github.com/whyrusleeping/cbor-gen" 10 10 ) 11 11 12 12 func main() { 13 - var typeVals []any 14 - for _, typ := range mst.CBORTypes() { 15 - typeVals = append(typeVals, reflect.New(typ).ELem().Interface()) 16 - } 13 + var typVals []any 14 + for _, typ := range mst.CBORTypes() { 15 + typVals = append(typVals, 16 + reflect.New(typ).Elem().Interface()) 17 + } 17 18 18 - genCfg := cbg.Gen{ 19 - MaxStringLength: 1_000_000, 20 - } 19 + genCfg := cbg.Gen{ 20 + MaxStringLength: 1_000_000, 21 + } 21 22 22 - if err := genCfg.WriteMapEncodersToFile("api/cbor/cbor_gen.go", "teal", 23 - teal.AlphaFeedPlay{}, 24 - ); err != nil { 25 - panic(err) 26 - } 23 + if err := 24 + genCfg.WriteMapEncodersToFile("api/teal/cbor_gen.go", 25 + "teal", 26 + teal.AlphaFeedPlay{}, 27 + ); err != nil { 28 + panic(err) 29 + } 27 30 }