import jingrow


def execute():
	files = jingrow.get_all("File", fields=["is_private", "file_url", "name"], filters={"is_folder": 0})

	for file in files:
		file_url = file.file_url or ""
		if file.is_private:
			if not file_url.startswith("/private/files/"):
				generate_file(file.name)
		else:
			if file_url.startswith("/private/files/"):
				generate_file(file.name)


def generate_file(file_name):
	try:
		file_pg = jingrow.get_pg("File", file_name)
		# private
		new_pg = jingrow.new_pg("File")
		new_pg.is_private = file_pg.is_private
		new_pg.file_name = file_pg.file_name
		# to create copy of file in right location
		# if the file pg is private then the file will be created in /private folder
		# if the file pg is public then the file will be created in /files folder
		new_pg.save_file(content=file_pg.get_content(), ignore_existing_file_check=True)

		file_pg.file_url = new_pg.file_url
		file_pg.save()
	except OSError:
		pass
	except Exception as e:
		print(e)
