Skip to content

Commit e46bbf6

Browse files
Merge pull request #36 from GitTimeraider/develop
Develop
2 parents 8590fb6 + c01cb5f commit e46bbf6

File tree

3 files changed

+13
-13
lines changed

3 files changed

+13
-13
lines changed

app/currency.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import requests
22
import json
33
import os
4-
from datetime import datetime, date
4+
from datetime import datetime, date, timezone
55
from flask import current_app
66
import xml.etree.ElementTree as ET
77
from decimal import Decimal, getcontext, InvalidOperation
@@ -60,7 +60,7 @@ def get_exchange_rates(self, base_currency: str = 'EUR', force_refresh: bool = F
6060
if not force_refresh and primary_provider:
6161
record = ExchangeRate.query.filter_by(date=date.today(), base_currency=base_currency, provider=primary_provider).first()
6262
if record:
63-
age_min = (datetime.utcnow() - record.created_at).total_seconds() / 60.0
63+
age_min = (datetime.now(timezone.utc) - record.created_at).total_seconds() / 60.0
6464
if age_min <= refresh_minutes:
6565
try:
6666
self.last_provider = primary_provider
@@ -79,7 +79,7 @@ def get_exchange_rates(self, base_currency: str = 'EUR', force_refresh: bool = F
7979
if not force_refresh:
8080
cached = ExchangeRate.query.filter_by(date=date.today(), base_currency=base_currency, provider=provider).first()
8181
if cached:
82-
age_min = (datetime.utcnow() - cached.created_at).total_seconds() / 60.0
82+
age_min = (datetime.now(timezone.utc) - cached.created_at).total_seconds() / 60.0
8383
if age_min <= refresh_minutes:
8484
try:
8585
self.last_provider = provider

app/models.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from datetime import datetime, date
1+
from datetime import datetime, date, timezone
22
from flask_login import UserMixin
33
from werkzeug.security import generate_password_hash, check_password_hash
44
from app import db, login_manager
@@ -62,7 +62,7 @@ class Webhook(db.Model):
6262
custom_headers = db.Column(db.Text) # JSON string for custom headers
6363
is_active = db.Column(db.Boolean, default=True)
6464
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
65-
created_at = db.Column(db.DateTime, default=datetime.utcnow)
65+
created_at = db.Column(db.DateTime, default=lambda: datetime.now(timezone.utc))
6666
last_used = db.Column(db.DateTime)
6767

6868
# Relationship
@@ -106,7 +106,7 @@ class ExchangeRate(db.Model):
106106
base_currency = db.Column(db.String(3), nullable=False, default='EUR')
107107
provider = db.Column(db.String(40), nullable=False, default='legacy') # data source identifier
108108
rates_json = db.Column(db.Text, nullable=False) # JSON string of exchange rates
109-
created_at = db.Column(db.DateTime, default=datetime.utcnow)
109+
created_at = db.Column(db.DateTime, default=lambda: datetime.now(timezone.utc))
110110

111111
__table_args__ = (
112112
db.UniqueConstraint('date', 'base_currency', 'provider', name='uq_rate_date_base_provider'),
@@ -136,7 +136,7 @@ def save_rates(cls, rates, base_currency='EUR', provider='unknown'):
136136
existing_rate = cls.query.filter_by(date=today, base_currency=base_currency, provider=provider).first()
137137
if existing_rate:
138138
existing_rate.rates_json = json.dumps(rates)
139-
existing_rate.created_at = datetime.utcnow()
139+
existing_rate.created_at = datetime.now(timezone.utc)
140140
else:
141141
new_rate = cls(
142142
date=today,
@@ -154,7 +154,7 @@ class PaymentMethod(db.Model):
154154
last_four = db.Column(db.String(4), nullable=True)
155155
notes = db.Column(db.Text, nullable=True)
156156
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
157-
created_at = db.Column(db.DateTime, default=datetime.utcnow)
157+
created_at = db.Column(db.DateTime, default=lambda: datetime.now(timezone.utc))
158158

159159
# Relationship back to user
160160
user = db.relationship('User', backref=db.backref('payment_methods', lazy=True))

app/webhooks.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import requests
1616
import json
1717
import logging
18-
from datetime import datetime
18+
from datetime import datetime, timezone
1919
from typing import Dict, List, Optional, Any
2020
from flask import current_app
2121

@@ -58,7 +58,7 @@ def send(self, message: str, title: str = None, color: str = None) -> Dict[str,
5858
response.raise_for_status()
5959

6060
# Update last_used timestamp
61-
self.webhook.last_used = datetime.utcnow()
61+
self.webhook.last_used = datetime.now(timezone.utc)
6262
from app import db
6363
db.session.commit()
6464

@@ -111,7 +111,7 @@ def prepare_payload(self, message: str, title: str = None, color: str = None) ->
111111

112112
embed = {
113113
"description": message,
114-
"timestamp": datetime.utcnow().isoformat(),
114+
"timestamp": datetime.now(timezone.utc).isoformat(),
115115
"footer": {
116116
"text": "Subscription Tracker"
117117
}
@@ -151,7 +151,7 @@ def prepare_payload(self, message: str, title: str = None, color: str = None) ->
151151

152152
attachment = {
153153
"text": message,
154-
"ts": int(datetime.utcnow().timestamp()),
154+
"ts": int(datetime.now(timezone.utc).timestamp()),
155155
"footer": "Subscription Tracker"
156156
}
157157

@@ -239,7 +239,7 @@ class GenericWebhookSender(WebhookSender):
239239
def prepare_payload(self, message: str, title: str = None, color: str = None) -> Dict[str, Any]:
240240
payload = {
241241
"text": message,
242-
"timestamp": datetime.utcnow().isoformat()
242+
"timestamp": datetime.now(timezone.utc).isoformat()
243243
}
244244

245245
if title:

0 commit comments

Comments
 (0)