Skip to content
This repository has been archived by the owner on Aug 12, 2024. It is now read-only.

Profile revamp #30

Merged
merged 3 commits into from
Oct 28, 2023
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Fixed retrieval of artworkUrl and updated examples
quintindunn committed Oct 28, 2023
commit bdf70745a6278dc12ff13689b34beca1eb5b37a5
18 changes: 18 additions & 0 deletions examples/get_friends_feed/get_friends_feed_1.py
Original file line number Diff line number Diff line change
@@ -13,10 +13,28 @@

for friend_node in friends_feed:
profile = friend_node.profile

# Get profile picture
profile.load_profile_picture(quality=100, height=None)
profile.profile_picture.save(f"./out/{profile.username}.jpg")

# Get all images from collections
for entry in friend_node.entries:
entry.load_snap(quality=100, fl_keep_iptc=True)
save_path = f"./out/{entry.filtered_id.replace('/', '_')}.jpg"
entry.filtered.save(save_path)

# Get profile music if user has profile music.
if profile.profile_music is not None:
profile.profile_music.load()
profile_music = profile.profile_music

# Save artwork if exists
if profile_music.artwork:
save_path = f"./out/{profile.username}_music.png"
profile_music.artwork.save(save_path)

# Save song
save_path = f"./out/{profile.username}_music.mp3"
with open(save_path, 'wb') as f:
f.write(profile_music.song)
2 changes: 1 addition & 1 deletion lapsepy/journal/journal.py
Original file line number Diff line number Diff line change
@@ -245,7 +245,7 @@ def generate_profile_object(profile_data: dict) -> Profile:
if music is not None:
profile_music = ProfileMusic(
artist=music.get("artist"),
artwork_url=music.get("artwork"),
artwork_url=music.get("artworkUrl"),
duration=music.get("duration"),
song_title=music.get("songTitle"),
song_url=music.get("songUrl")
25 changes: 24 additions & 1 deletion lapsepy/journal/structures/profile.py
Original file line number Diff line number Diff line change
@@ -3,7 +3,9 @@
import requests

from datetime import datetime

from PIL import Image
import io

from .snap import Snap

@@ -54,7 +56,7 @@ def from_dict(profile_data: dict) -> "Profile":
if music is not None:
profile_music = ProfileMusic(
artist=music.get("artist"),
artwork_url=music.get("artwork"),
artwork_url=music.get("artworkUrl"),
duration=music.get("duration"),
song_title=music.get("songTitle"),
song_url=music.get("songUrl")
@@ -116,3 +118,24 @@ def __init__(self, artist: str, artwork_url: str, duration: int, song_title: str
self.duration = duration
self.song_title = song_title
self.song_url = song_url

self.song: None | bytes = None
self.artwork: None | Image.Image = None

def load(self):
"""
Loads the song, and artwork into memory
:return: None
"""
# Get song
request = requests.get(self.song_url)
request.raise_for_status()
self.song = request.content

# Get artwork
if self.artwork_url:
request = requests.get(self.artwork_url)
request.raise_for_status()

bytes_io = io.BytesIO(request.content)
self.artwork = Image.open(bytes_io)