(zf *zip.File)
| 468 | } |
| 469 | |
| 470 | func tweetsFromZipFile(zf *zip.File) (tweets []*zipTweetItem, err error) { |
| 471 | rc, err := zf.Open() |
| 472 | if err != nil { |
| 473 | return nil, err |
| 474 | } |
| 475 | slurp, err := io.ReadAll(rc) |
| 476 | rc.Close() |
| 477 | if err != nil { |
| 478 | return nil, err |
| 479 | } |
| 480 | i := bytes.IndexByte(slurp, '[') |
| 481 | if i < 0 { |
| 482 | return nil, errors.New("No '[' found in zip file") |
| 483 | } |
| 484 | slurp = slurp[i:] |
| 485 | if err := json.Unmarshal(slurp, &tweets); err != nil { |
| 486 | return nil, fmt.Errorf("JSON error: %v", err) |
| 487 | } |
| 488 | return |
| 489 | } |
| 490 | |
| 491 | func (r *run) importTweetsFromZip(userID string, zr *zip.Reader) error { |
| 492 | log.Printf("twitter: processing zip file with %d files", len(zr.File)) |
no test coverage detected