[locations] One more time, trying to fix this stuff
This commit is contained in:
@ -703,11 +703,6 @@ class Scrobble(TimeStampedModel):
|
|||||||
if self.is_stale:
|
if self.is_stale:
|
||||||
logger.info(f"No - stale - {self.id} - {self.source}")
|
logger.info(f"No - stale - {self.id} - {self.source}")
|
||||||
updatable = False
|
updatable = False
|
||||||
if self.media_obj.__class__.__name__ == "GeoLocation":
|
|
||||||
logger.info(
|
|
||||||
f"Yes - geolocation is always updatable - {self.id} - {self.source}"
|
|
||||||
)
|
|
||||||
updateable = True
|
|
||||||
|
|
||||||
return updatable
|
return updatable
|
||||||
|
|
||||||
@ -773,11 +768,12 @@ class Scrobble(TimeStampedModel):
|
|||||||
source = scrobble_data["source"]
|
source = scrobble_data["source"]
|
||||||
mtype = media.__class__.__name__
|
mtype = media.__class__.__name__
|
||||||
|
|
||||||
# Do some funny stuff if it's a geo location
|
# GeoLocations are a special case scrobble
|
||||||
if mtype == cls.MediaType.GEO_LOCATION:
|
if mtype == cls.MediaType.GEO_LOCATION:
|
||||||
scrobble = cls.check_location_for_finish(
|
scrobble = cls.create_or_update_location(
|
||||||
media, scrobble_data, user_id
|
media, scrobble_data, user_id
|
||||||
)
|
)
|
||||||
|
return scrobble
|
||||||
|
|
||||||
if scrobble and scrobble.can_be_updated:
|
if scrobble and scrobble.can_be_updated:
|
||||||
logger.info(
|
logger.info(
|
||||||
@ -795,9 +791,9 @@ class Scrobble(TimeStampedModel):
|
|||||||
return cls.create(scrobble_data)
|
return cls.create(scrobble_data)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def check_location_for_finish(
|
def create_or_update_location(
|
||||||
cls, location: GeoLocation, scrobble_data: dict, user_id: int
|
cls, location: GeoLocation, scrobble_data: dict, user_id: int
|
||||||
) -> Optional["Scrobble"]:
|
) -> "Scrobble":
|
||||||
scrobble = (
|
scrobble = (
|
||||||
cls.objects.filter(
|
cls.objects.filter(
|
||||||
media_type=cls.MediaType.GEO_LOCATION,
|
media_type=cls.MediaType.GEO_LOCATION,
|
||||||
@ -839,9 +835,11 @@ class Scrobble(TimeStampedModel):
|
|||||||
f"[scrobbling] finishing {scrobble.id} so we can create new one for {location.id}",
|
f"[scrobbling] finishing {scrobble.id} so we can create new one for {location.id}",
|
||||||
)
|
)
|
||||||
scrobble.stop()
|
scrobble.stop()
|
||||||
scrobble = None
|
|
||||||
|
|
||||||
return scrobble
|
logger.info(
|
||||||
|
f"[scrobbling] creating for location {location.id} from GPSLogger"
|
||||||
|
)
|
||||||
|
return cls.create(scrobble_data)
|
||||||
|
|
||||||
def update(self, scrobble_data: dict) -> "Scrobble":
|
def update(self, scrobble_data: dict) -> "Scrobble":
|
||||||
# Status is a field we get from Mopidy, which refuses to poll us
|
# Status is a field we get from Mopidy, which refuses to poll us
|
||||||
|
|||||||
Reference in New Issue
Block a user