Skip to content

Commit

Permalink
restructured
Browse files Browse the repository at this point in the history
  • Loading branch information
rohittp0 committed Jun 5, 2023
1 parent 472ed16 commit 8b3cd46
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 12 deletions.
2 changes: 1 addition & 1 deletion gramup/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import os
from typing import List

import shortuuid
from fastapi import FastAPI, HTTPException, Request, BackgroundTasks
from starlette import status
from starlette.middleware.cors import CORSMiddleware
Expand Down Expand Up @@ -96,6 +95,7 @@ async def tasks_list():
"id": task.id,
"name": task.name,
"status": task.status,
"message": task.message,
"schedule_time": task.schedule_time
})

Expand Down
5 changes: 2 additions & 3 deletions gramup/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,19 +23,18 @@ class File(BaseModel):

class Folder(BaseModel):
this = peewee.ForeignKeyField(File, backref="this_folder", on_delete="CASCADE")
sub_folders = peewee.ManyToManyField(File, backref="parent_folder", on_delete="CASCADE")
files = peewee.ManyToManyField(File, backref="folder", on_delete="CASCADE")


class Task(BaseModel):
name = peewee.CharField(max_length=128)
status = peewee.CharField(choices=["running", "completed", "failed"], default="running")
schedule_time = peewee.DateTimeField(default=datetime.now)
message = peewee.CharField(max_length=256, null=True)


FolderSubFolder = Folder.sub_folders.get_through_model()
FolderFile = Folder.files.get_through_model()

db.create_tables([File, FolderSubFolder, FolderFile, Folder, Task])
db.create_tables([File, FolderFile, Folder, Task])

TaskRequest = TypedDict("TaskRequest", {"path": str, "type": Literal["sync", "upload"]})
19 changes: 11 additions & 8 deletions gramup/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ async def pull_all_to_db(task: Task):

if not await client.is_user_authorized():
task.status = "failed"
task.message = "User not authorized"
task.save()
return

Expand All @@ -22,28 +23,30 @@ async def pull_all_to_db(task: Task):
caption: str = message.caption
path = Path(caption if "/" in caption else f"external/{caption}")

file = File.create(
file, _ = File.get_or_create(
id=m_id,
path=str(path),
name=path.name
)

file.save()
first = True

for folder in path.parents:
file_new, _ = File.get_or_create(
path=str(folder),
name=folder.name,
folder=True
)

folder_new, _ = Folder.get_or_create(
path=str(folder),
name=folder.name
)

if first:
first = False
folder_new.files.add(file)
else:
folder_new.sub_folders.add(file)

folder_new.this = file_new
folder_new.files.add(file)
folder_new.save()

file = folder_new

task.status = "completed"
Expand Down

0 comments on commit 8b3cd46

Please sign in to comment.