diff --git a/lib/framework/static/js/ff_common1.js b/lib/framework/static/js/ff_common1.js
index 8800ff5..804ef01 100644
--- a/lib/framework/static/js/ff_common1.js
+++ b/lib/framework/static/js/ff_common1.js
@@ -13,6 +13,7 @@ if (tmp.length == 2) {
var PAGE_NAME = tmp[3];
}
var current_data = null;
+var current_page = null;
console.log("NAME: [" + PACKAGE_NAME + '] [' + MODULE_NAME + '] [' + PAGE_NAME + ']');
$(window).on("load resize", function (event) {
diff --git a/lib/framework/static/js/ff_global1.js b/lib/framework/static/js/ff_global1.js
index aee97ec..f5e7ef1 100644
--- a/lib/framework/static/js/ff_global1.js
+++ b/lib/framework/static/js/ff_global1.js
@@ -391,6 +391,7 @@ function make_page_html(data) {
for (var i = data.start_page ; i <= data.last_page ; i++) {
str += '';
diff --git a/lib/framework/static/js/ff_ui1.js b/lib/framework/static/js/ff_ui1.js
index 3ef2cb4..138df24 100644
--- a/lib/framework/static/js/ff_ui1.js
+++ b/lib/framework/static/js/ff_ui1.js
@@ -88,7 +88,7 @@ function j_progress(id, width, label) {
var str = '';
str += '
'
str += '
';
- str += '
'+label+'
';
+ str += '
'+label+'
';
str += '
'
return str;
}
diff --git a/lib/framework/version.py b/lib/framework/version.py
index 9ee4fab..d3415e3 100644
--- a/lib/framework/version.py
+++ b/lib/framework/version.py
@@ -1 +1 @@
-VERSION="4.0.33"
\ No newline at end of file
+VERSION="4.0.34"
\ No newline at end of file
diff --git a/lib/plugin/__init__.py b/lib/plugin/__init__.py
index d4f5c6b..0c89e12 100644
--- a/lib/plugin/__init__.py
+++ b/lib/plugin/__init__.py
@@ -1,14 +1,17 @@
+# 순서 바꾸지 말 것
+import os, sys, traceback, re, threading, time, queue
+from datetime import datetime, timedelta
+from flask import Blueprint, render_template, jsonify, redirect, request
+from sqlalchemy import desc, or_
+
from framework import logger
from .model_setting import get_model_setting
from .logic import Logic
from .route import default_route, default_route_socketio_module, default_route_socketio_page, default_route_single_module
from .logic_module_base import PluginModuleBase, PluginPageBase
-from .ffmpeg_queue import FfmpegQueueEntity, FfmpegQueue
+#from .ffmpeg_queue import FfmpegQueueEntity, FfmpegQueue
from .model_base import ModelBase
from .create_plugin import create_plugin_instance
-
-import os, sys, traceback, re, threading, time
-from datetime import datetime, timedelta
-from flask import Blueprint, render_template, jsonify, redirect, request
from framework import *
+from tool import *
diff --git a/lib/plugin/ffmpeg_queue.py b/lib/plugin/_ffmpeg_queue.py
similarity index 100%
rename from lib/plugin/ffmpeg_queue.py
rename to lib/plugin/_ffmpeg_queue.py
diff --git a/lib/plugin/model_base.py b/lib/plugin/model_base.py
index ca3c4b3..49a47dc 100644
--- a/lib/plugin/model_base.py
+++ b/lib/plugin/model_base.py
@@ -2,12 +2,12 @@ import traceback
from datetime import datetime, timedelta
from framework import F
+from sqlalchemy import desc, or_
class ModelBase(F.db.Model):
__abstract__ = True
__table_args__ = {'mysql_collate': 'utf8_general_ci'}
- model_setting = None
P = None
def __repr__(self):
@@ -96,16 +96,12 @@ class ModelBase(F.db.Model):
F.db.session.query(cls).delete()
F.db.session.commit()
else:
- now = datetime.datetime.now()
- ago = now - datetime.timedelta(days=days)
-
+ now = datetime.now()
+ ago = now - timedelta(days=int(days))
+ #ago.hour = 0
+ #ago.minute = 0
ret = F.db.session.query(cls).filter(cls.created_time > ago).delete()
cls.P.debug(ret)
-
-
-
-
-
return True
except Exception as e:
cls.P.logger.error(f'Exception:{str(e)}')
@@ -131,7 +127,7 @@ class ModelBase(F.db.Model):
query = cls.make_query(req, order=order, search=search, option1=option1, option2=option2)
count = query.count()
query = query.limit(page_size).offset((page-1)*page_size)
- F.logger.debug('cls count:%s', count)
+ #F.logger.debug('cls count:%s', count)
lists = query.all()
ret['list'] = [item.as_dict() for item in lists]
ret['paging'] = cls.get_paging_info(count, page, page_size)
@@ -154,4 +150,24 @@ class ModelBase(F.db.Model):
with F.app.app_context():
query = F.db.session.query(cls)
return query
-
\ No newline at end of file
+
+
+ @classmethod
+ def make_query_search(cls, query, search, field):
+ if search is not None and search != '':
+ if search.find('|') != -1:
+ tmp = search.split('|')
+ conditions = []
+ for tt in tmp:
+ if tt != '':
+ conditions.append(field.like('%'+tt.strip()+'%') )
+ query = query.filter(or_(*conditions))
+ elif search.find(',') != -1:
+ tmp = search.split(',')
+ for tt in tmp:
+ if tt != '':
+ query = query.filter(field.like('%'+tt.strip()+'%'))
+ else:
+ query = query.filter(field.like('%'+search+'%'))
+ #query = query1.union(query2)
+ return query
diff --git a/lib/support/expand/ffmpeg.py b/lib/support/expand/ffmpeg.py
index 5b0a1cb..6288b43 100644
--- a/lib/support/expand/ffmpeg.py
+++ b/lib/support/expand/ffmpeg.py
@@ -93,7 +93,7 @@ class SupportFfmpeg(object):
try:
self.status = SupportFfmpeg.Status.USER_STOP
self.kill()
- logger.warning('stop')
+ #logger.warning('stop')
except Exception as e:
logger.error(f'Exception:{str(e)}')
logger.error(traceback.format_exc())
@@ -192,6 +192,9 @@ SET CRLF=^
self.kill()
else:
process_ret = self.process.wait(timeout=60*self.timeout_minute)
+ # 2022-10-25
+ time.sleep(3)
+ logger.info(f"{process_ret=}")
if process_ret is None: # timeout
if self.status != SupportFfmpeg.Status.COMPLETED and self.status != SupportFfmpeg.Status.USER_STOP and self.status != SupportFfmpeg.Status.PF_STOP:
self.status = SupportFfmpeg.Status.TIME_OVER
@@ -361,6 +364,19 @@ SET CRLF=^
except Exception as e:
logger.error(f'Exception:{str(e)}')
logger.error(traceback.format_exc())
+
+
+ @classmethod
+ def stop_by_callback_id(cls, callback_id):
+ try:
+ for __instance in SupportFfmpeg.__instance_list:
+ if __instance.callback_id == callback_id:
+ __instance.stop()
+ break
+ except Exception as e:
+ logger.error(f'Exception:{str(e)}')
+ logger.error(traceback.format_exc())
+
@classmethod
def get_instance_by_idx(cls, idx):
diff --git a/lib/system/setup.py b/lib/system/setup.py
index 8f49c1f..b6b4597 100644
--- a/lib/system/setup.py
+++ b/lib/system/setup.py
@@ -81,5 +81,5 @@ try:
P.set_module_list([ModuleHome, ModuleRoute, ModuleSetting, ModulePlugin, ModuleTool, ModuleLog])
except Exception as e:
- P.logger.error(f'Exception:{str(e)}')
- P.logger.error(traceback.format_exc())
+ F.logger.error(f'Exception:{str(e)}')
+ F.logger.error(traceback.format_exc())
diff --git a/lib/tool/util.py b/lib/tool/util.py
index 5ce9008..8065a86 100644
--- a/lib/tool/util.py
+++ b/lib/tool/util.py
@@ -15,4 +15,9 @@ class ToolUtil(object):
url += '&'
url += f"apikey={F.SystemModelSetting.get('apikey')}"
return url
-
\ No newline at end of file
+
+ @classmethod
+ def make_path(cls, data):
+ from framework import F
+ return data.replace('{PATH_DATA}', F.config['path_data'])
+
\ No newline at end of file