push latest changes
This commit is contained in:
		
							parent
							
								
									7523a19d1f
								
							
						
					
					
						commit
						cb2b5c2c2b
					
				
					 63 changed files with 3158 additions and 1552 deletions
				
			
		|  | @ -1,4 +1,8 @@ | |||
| from flask_sqlalchemy import SQLAlchemy | ||||
| db = SQLAlchemy() | ||||
| from flask_sqlalchemy import SQLAlchemy # isort:skip | ||||
| 
 | ||||
| db = SQLAlchemy() # isort:skip | ||||
| 
 | ||||
| from .transcode import TranscodeJob | ||||
| from .stats import Stats | ||||
| from .transcode import TranscodeJob | ||||
| from .requests import RequestItem, RequestUser | ||||
| from flask_sqlalchemy import SQLAlchemy | ||||
|  |  | |||
							
								
								
									
										74
									
								
								models/requests.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								models/requests.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,74 @@ | |||
| from datetime import datetime | ||||
| from uuid import uuid4 | ||||
| 
 | ||||
| from sqlalchemy import Float, ForeignKey, Integer, String | ||||
| from sqlalchemy.orm import relationship | ||||
| 
 | ||||
| from api import Client | ||||
| 
 | ||||
| from . import db | ||||
| 
 | ||||
| 
 | ||||
| class RequestItem(db.Model): | ||||
|     id = db.Column( | ||||
|         db.String, | ||||
|         default=lambda: str( | ||||
|             uuid4()), | ||||
|         index=True, | ||||
|         unique=True) | ||||
|     item_id = db.Column(db.String, primary_key=True) | ||||
|     added_date = db.Column(db.DateTime) | ||||
|     request_type = db.Column(db.String) | ||||
|     data = db.Column(db.String) | ||||
|     approved = db.Column(db.Boolean, nullable=True) | ||||
|     arr_id = db.Column(db.String, nullable=True) | ||||
|     jellyfin_id = db.Column(db.String, nullable=True) | ||||
|     users = relationship("RequestUser", back_populates="requests") | ||||
| 
 | ||||
|     @property | ||||
|     def downloads(self): | ||||
|         yield from self._download_state() | ||||
| 
 | ||||
|     @property | ||||
|     def arr_item(self): | ||||
|         c = Client() | ||||
|         if self.request_type == "sonarr": | ||||
|             return c.sonarr.series(self.arr_id) | ||||
|         if self.request_type == "radarr": | ||||
|             return c.radarr.movies(self.arr_id) | ||||
| 
 | ||||
|     def _download_state(self): | ||||
|         c = Client() | ||||
|         if self.request_type == "sonarr": | ||||
|             q = c.sonarr.queue() | ||||
|             for item in q: | ||||
|                 if item["seriesId"] == str(self.arr_id): | ||||
|                     item["download"] = c.qbittorent.poll(self.download_id) | ||||
|                     yield item | ||||
|         c = Client() | ||||
|         if self.request_type == "radarr": | ||||
|             q = c.radarr.queue() | ||||
|             for item in q: | ||||
|                 if str(item["movieId"]) == str(self.arr_id): | ||||
|                     if item["protocol"] == "torrent": | ||||
|                         item["download"] = c.qbittorent.poll( | ||||
|                             item["downloadId"]) | ||||
|                     yield item | ||||
| 
 | ||||
| 
 | ||||
| class RequestUser(db.Model): | ||||
|     item_id = db.Column( | ||||
|         db.String, | ||||
|         db.ForeignKey( | ||||
|             RequestItem.item_id), | ||||
|         primary_key=True) | ||||
|     user_id = db.Column(db.String, primary_key=True) | ||||
|     hidden = db.Column(db.Boolean, default=False) | ||||
|     updated = db.Column(db.Boolean, default=True) | ||||
|     user_name = db.Column(db.String) | ||||
|     requests = relationship("RequestItem", back_populates="users") | ||||
| 
 | ||||
|     @property | ||||
|     def details(self): | ||||
|         c = Client() | ||||
|         return c.jellyfin.get_users(self.user_id) | ||||
|  | @ -1,7 +1,9 @@ | |||
| from . import db | ||||
| from sqlalchemy import String, Float, Column, Integer, DateTime | ||||
| from datetime import datetime | ||||
| 
 | ||||
| from sqlalchemy import Column, DateTime, Float, Integer, String | ||||
| 
 | ||||
| from . import db | ||||
| 
 | ||||
| 
 | ||||
| class Stats(db.Model): | ||||
|     id = db.Column(db.Integer, primary_key=True) | ||||
|  | @ -9,6 +11,7 @@ class Stats(db.Model): | |||
|     key = db.Column(db.String) | ||||
|     value = db.Column(db.Float) | ||||
| 
 | ||||
| 
 | ||||
| class Diagrams(db.Model): | ||||
|     name = db.Column(db.String,primary_key=True) | ||||
|     data = db.Column(db.String) | ||||
|     name = db.Column(db.String, primary_key=True) | ||||
|     data = db.Column(db.String) | ||||
|  |  | |||
|  | @ -1,13 +1,15 @@ | |||
| from . import db | ||||
| from sqlalchemy import String, Float, Column, Integer, DateTime, ForeignKey | ||||
| from sqlalchemy_utils import JSONType | ||||
| from sqlalchemy.orm import relationship | ||||
| from datetime import datetime | ||||
| 
 | ||||
| from sqlalchemy import Column, DateTime, Float, ForeignKey, Integer, String | ||||
| from sqlalchemy.orm import relationship | ||||
| from sqlalchemy_utils import JSONType | ||||
| 
 | ||||
| from . import db | ||||
| 
 | ||||
| 
 | ||||
| class TranscodeJob(db.Model): | ||||
|     id = db.Column(db.Integer, primary_key=True) | ||||
|     created = db.Column(db.DateTime, default=datetime.today) | ||||
|     status = db.Column(JSONType, default={}) | ||||
|     completed = db.Column(db.DateTime, default=None) | ||||
|     profile = db.Column(db.String, default=None) | ||||
|     profile = db.Column(db.String, default=None) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue