mypy fixes, date issue

This commit is contained in:
dni ⚡ 2023-01-09 09:54:17 +01:00
parent 3d8a8664f2
commit e9f625f008
7 changed files with 34 additions and 82 deletions

View file

@ -1,8 +1,6 @@
from http import HTTPStatus
from typing import List, Optional, Union
from starlette.exceptions import HTTPException
from lnbits.helpers import urlsafe_short_hash
from . import db

View file

@ -1,18 +1,18 @@
from fastapi.params import Query
from pydantic.main import BaseModel
from fastapi import Query
from pydantic import BaseModel
class CreateEmailaddress(BaseModel):
wallet: str = Query(...) # type: ignore
email: str = Query(...) # type: ignore
testemail: str = Query(...) # type: ignore
smtp_server: str = Query(...) # type: ignore
smtp_user: str = Query(...) # type: ignore
smtp_password: str = Query(...) # type: ignore
smtp_port: str = Query(...) # type: ignore
description: str = Query(...) # type: ignore
wallet: str = Query(...)
email: str = Query(...)
testemail: str = Query(...)
smtp_server: str = Query(...)
smtp_user: str = Query(...)
smtp_password: str = Query(...)
smtp_port: str = Query(...)
description: str = Query(...)
anonymize: bool
cost: int = Query(..., ge=0) # type: ignore
cost: int = Query(..., ge=0)
class Emailaddresses(BaseModel):
@ -30,10 +30,10 @@ class Emailaddresses(BaseModel):
class CreateEmail(BaseModel):
emailaddress_id: str = Query(...) # type: ignore
subject: str = Query(...) # type: ignore
receiver: str = Query(...) # type: ignore
message: str = Query(...) # type: ignore
emailaddress_id: str = Query(...)
subject: str = Query(...)
receiver: str = Query(...)
message: str = Query(...)
class Emails(BaseModel):

View file

@ -1,9 +1,9 @@
import os
import re
import socket
import sys
import time
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.utils import formatdate
from http import HTTPStatus
from smtplib import SMTP_SSL as SMTP
@ -25,7 +25,12 @@ async def send_mail(emailaddress, email):
valid_email(emailaddress.email)
valid_email(email.receiver)
ts = time.time()
date = formatdate(ts, True)
msg = MIMEMultipart("alternative")
msg = MIMEMultipart("alternative")
msg["Date"] = date
msg["Subject"] = email.subject
msg["From"] = emailaddress.email
msg["To"] = email.receiver

View file

@ -1,20 +1,11 @@
import asyncio
from http import HTTPStatus
import httpx
from loguru import logger
from starlette.exceptions import HTTPException
from lnbits.core.models import Payment
from lnbits.tasks import register_invoice_listener
from .crud import (
delete_email,
get_email,
get_emailaddress,
get_emailaddress_by_email,
set_email_paid,
)
from .crud import get_email, get_emailaddress, set_email_paid
from .smtp import send_mail
@ -27,8 +18,7 @@ async def wait_for_paid_invoices():
async def on_invoice_paid(payment: Payment) -> None:
if not payment.extra or "smtp" != payment.extra.get("tag"):
# not an lnurlp invoice
if payment.extra.get("tag") != "smtp":
return
email = await get_email(payment.checking_id)

View file

@ -1,9 +1,7 @@
from http import HTTPStatus
from fastapi import Request
from fastapi.params import Depends
from fastapi import Depends, HTTPException, Request
from fastapi.templating import Jinja2Templates
from starlette.exceptions import HTTPException
from starlette.responses import HTMLResponse
from lnbits.core.models import User
@ -16,9 +14,7 @@ templates = Jinja2Templates(directory="templates")
@smtp_ext.get("/", response_class=HTMLResponse)
async def index(
request: Request, user: User = Depends(check_user_exists) # type: ignore
):
async def index(request: Request, user: User = Depends(check_user_exists)):
return smtp_renderer().TemplateResponse(
"smtp/index.html", {"request": request, "user": user.dict()}
)

View file

@ -1,8 +1,6 @@
from http import HTTPStatus
from fastapi import Query
from fastapi.params import Depends
from starlette.exceptions import HTTPException
from fastapi import Depends, HTTPException, Query
from lnbits.core.crud import get_user
from lnbits.core.services import check_transaction_status, create_invoice
@ -17,18 +15,17 @@ from .crud import (
delete_emailaddress,
get_email,
get_emailaddress,
get_emailaddress_by_email,
get_emailaddresses,
get_emails,
update_emailaddress,
)
from .smtp import send_mail, valid_email
from .smtp import valid_email
## EMAILS
@smtp_ext.get("/api/v1/email")
async def api_email(
g: WalletTypeInfo = Depends(get_key_type), all_wallets: bool = Query(False) # type: ignore
g: WalletTypeInfo = Depends(get_key_type), all_wallets: bool = Query(False)
):
wallet_ids = [g.wallet.id]
if all_wallets:
@ -98,9 +95,7 @@ async def api_smtp_make_email(emailaddress_id, data: CreateEmail):
@smtp_ext.delete("/api/v1/email/{email_id}")
async def api_email_delete(
email_id, g: WalletTypeInfo = Depends(get_key_type) # type: ignore
):
async def api_email_delete(email_id, g: WalletTypeInfo = Depends(get_key_type)):
email = await get_email(email_id)
if not email:
@ -118,8 +113,8 @@ async def api_email_delete(
## EMAILADDRESSES
@smtp_ext.get("/api/v1/emailaddress")
async def api_emailaddresses(
g: WalletTypeInfo = Depends(get_key_type), # type: ignore
all_wallets: bool = Query(False), # type: ignore
g: WalletTypeInfo = Depends(get_key_type),
all_wallets: bool = Query(False),
):
wallet_ids = [g.wallet.id]
if all_wallets:
@ -136,7 +131,7 @@ async def api_emailaddresses(
async def api_emailaddress_create(
data: CreateEmailaddress,
emailaddress_id=None,
g: WalletTypeInfo = Depends(get_key_type), # type: ignore
g: WalletTypeInfo = Depends(get_key_type),
):
if emailaddress_id:
emailaddress = await get_emailaddress(emailaddress_id)
@ -158,7 +153,7 @@ async def api_emailaddress_create(
@smtp_ext.delete("/api/v1/emailaddress/{emailaddress_id}")
async def api_emailaddress_delete(
emailaddress_id, g: WalletTypeInfo = Depends(get_key_type) # type: ignore
emailaddress_id, g: WalletTypeInfo = Depends(get_key_type)
):
emailaddress = await get_emailaddress(emailaddress_id)

32
package-lock.json generated
View file

@ -1,32 +0,0 @@
{
"name": "lnbits-legend",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"devDependencies": {
"prettier": "2.1.1"
}
},
"node_modules/prettier": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.1.tgz",
"integrity": "sha512-9bY+5ZWCfqj3ghYBLxApy2zf6m+NJo5GzmLTpr9FsApsfjriNnS2dahWReHMi7qNPhhHl9SYHJs2cHZLgexNIw==",
"dev": true,
"bin": {
"prettier": "bin-prettier.js"
},
"engines": {
"node": ">=10.13.0"
}
}
},
"dependencies": {
"prettier": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.1.tgz",
"integrity": "sha512-9bY+5ZWCfqj3ghYBLxApy2zf6m+NJo5GzmLTpr9FsApsfjriNnS2dahWReHMi7qNPhhHl9SYHJs2cHZLgexNIw==",
"dev": true
}
}
}