MCPcopy Index your code
hub / github.com/AstrBotDevs/AstrBot / batch_update_sort_order

Method batch_update_sort_order

astrbot/core/db/sqlite.py:1169–1206  ·  view source on GitHub ↗

Batch update sort_order for personas and/or folders. Args: items: List of dicts with keys: - id: The persona_id or folder_id - type: Either "persona" or "folder" - sort_order: The new sort_order value

(
        self,
        items: list[dict],
    )

Source from the content-addressed store, hash-verified

1167 return list(result.scalars().all())
1168
1169 async def batch_update_sort_order(
1170 self,
1171 items: list[dict],
1172 ) -> None:
1173 """Batch update sort_order for personas and/or folders.
1174
1175 Args:
1176 items: List of dicts with keys:
1177 - id: The persona_id or folder_id
1178 - type: Either "persona" or "folder"
1179 - sort_order: The new sort_order value
1180 """
1181 if not items:
1182 return
1183
1184 async with self.get_db() as session:
1185 session: AsyncSession
1186 async with session.begin():
1187 for item in items:
1188 item_id = item.get("id")
1189 item_type = item.get("type")
1190 sort_order = item.get("sort_order")
1191
1192 if item_id is None or item_type is None or sort_order is None:
1193 continue
1194
1195 if item_type == "persona":
1196 await session.execute(
1197 update(Persona)
1198 .where(col(Persona.persona_id) == item_id)
1199 .values(sort_order=sort_order)
1200 )
1201 elif item_type == "folder":
1202 await session.execute(
1203 update(PersonaFolder)
1204 .where(col(PersonaFolder.folder_id) == item_id)
1205 .values(sort_order=sort_order)
1206 )
1207
1208 async def insert_preference_or_update(self, scope, scope_id, key, value):
1209 """Insert a new preference record or update if it exists."""

Callers

nothing calls this directly

Calls 5

updateFunction · 0.50
get_dbMethod · 0.45
getMethod · 0.45
executeMethod · 0.45
valuesMethod · 0.45

Tested by

no test coverage detected