diff --git a/scripts/import_from_xtream.py b/scripts/import_from_xtream.py new file mode 100755 index 0000000..365affc --- /dev/null +++ b/scripts/import_from_xtream.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python3 +import argparse +import os +import sys +from mongoengine import connect +import mysql.connector + +sys.path.append(os.path.join(os.path.dirname(__file__), '..')) + +from app.service.service import ServiceSettings +from .import_streams_from_xtream import import_streams_to_server +from .import_subscribers_from_xtream import import_subscribers_to_server + +PROJECT_NAME = 'import_streams_from_xtream' + +if __name__ == '__main__': + parser = argparse.ArgumentParser(prog=PROJECT_NAME, usage='%(prog)s [options]') + parser.add_argument('--mongo_uri', help='MongoDB credentials', default='mongodb://localhost:27017/iptv') + parser.add_argument('--mysql_host', help='MySQL host', default='localhost') + parser.add_argument('--mysql_user', help='MySQL username', default='root') + parser.add_argument('--mysql_password', help='MySQL password', default='') + parser.add_argument('--mysql_port', help='MySQL port', default=3306) + parser.add_argument('--server_id', help='Server ID', default='') + + argv = parser.parse_args() + mysql_host = argv.mysql_host + mysql_user = argv.mysql_user + mysql_password = argv.mysql_password + mysql_port = argv.mysql_port + server_id = argv.server_id + + mongo = connect(host=argv.mongo_uri) + if not mongo: + sys.exit(1) + + server = ServiceSettings.objects(id=server_id).first() + if not server: + sys.exit(1) + + db = mysql.connector.connect( + host=mysql_host, + port=mysql_port, + user=mysql_user, + passwd=mysql_password, + database='xtream_iptvpro' + ) + + import_streams_to_server(db, server) + import_subscribers_to_server(db, server) + db.close() diff --git a/scripts/import_streams_from_xtream.py b/scripts/import_streams_from_xtream.py index 8537a6a..cd4a513 100755 --- a/scripts/import_streams_from_xtream.py +++ b/scripts/import_streams_from_xtream.py @@ -15,44 +15,11 @@ import app.common.constants as constants PROJECT_NAME = 'import_streams_from_xtream' -if __name__ == '__main__': - parser = argparse.ArgumentParser(prog=PROJECT_NAME, usage='%(prog)s [options]') - parser.add_argument('--mongo_uri', help='MongoDB credentials', default='mongodb://localhost:27017/iptv') - parser.add_argument('--mysql_host', help='MySQL host', default='localhost') - parser.add_argument('--mysql_user', help='MySQL username', default='root') - parser.add_argument('--mysql_password', help='MySQL password', default='') - parser.add_argument('--mysql_port', help='MySQL port', default=3306) - parser.add_argument('--server_id', help='Server ID', default='') - - argv = parser.parse_args() - mysql_host = argv.mysql_host - mysql_user = argv.mysql_user - mysql_password = argv.mysql_password - mysql_port = argv.mysql_port - server_id = argv.server_id - - mongo = connect(host=argv.mongo_uri) - if not mongo: - sys.exit(1) - - server = ServiceSettings.objects(id=server_id).first() - if not server: - sys.exit(1) - - db = mysql.connector.connect( - host=mysql_host, - port=mysql_port, - user=mysql_user, - passwd=mysql_password, - database='xtream_iptvpro' - ) +def import_streams_to_server(db, server): cursor = db.cursor(dictionary=True) - sql = 'SELECT stream_source, stream_display_name, stream_icon, channel_id from streams' - cursor.execute(sql) - sql_streams = cursor.fetchall() for sql_entry in sql_streams: @@ -75,6 +42,40 @@ if __name__ == '__main__': server.streams.append(stream) server.save() - cursor.close() - db.close() + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(prog=PROJECT_NAME, usage='%(prog)s [options]') + parser.add_argument('--mongo_uri', help='MongoDB credentials', default='mongodb://localhost:27017/iptv') + parser.add_argument('--mysql_host', help='MySQL host', default='localhost') + parser.add_argument('--mysql_user', help='MySQL username', default='root') + parser.add_argument('--mysql_password', help='MySQL password', default='') + parser.add_argument('--mysql_port', help='MySQL port', default=3306) + parser.add_argument('--server_id', help='Server ID', default='') + + argv = parser.parse_args() + mysql_host = argv.mysql_host + mysql_user = argv.mysql_user + mysql_password = argv.mysql_password + mysql_port = argv.mysql_port + server_id = argv.server_id + + mongo = connect(host=argv.mongo_uri) + if not mongo: + sys.exit(1) + + ser = ServiceSettings.objects(id=server_id).first() + if not ser: + sys.exit(1) + + d = mysql.connector.connect( + host=mysql_host, + port=mysql_port, + user=mysql_user, + passwd=mysql_password, + database='xtream_iptvpro' + ) + + import_streams_to_server(d, ser) + d.close() diff --git a/scripts/import_subscribers_from_xtream.py b/scripts/import_subscribers_from_xtream.py index 819b77d..276a3ec 100755 --- a/scripts/import_subscribers_from_xtream.py +++ b/scripts/import_subscribers_from_xtream.py @@ -14,51 +14,16 @@ from app.service.service import ServiceSettings PROJECT_NAME = 'import_subscribers_from_xtream' -if __name__ == '__main__': - parser = argparse.ArgumentParser(prog=PROJECT_NAME, usage='%(prog)s [options]') - parser.add_argument('--mongo_uri', help='MongoDB credentials', default='mongodb://localhost:27017/iptv') - parser.add_argument('--mysql_host', help='MySQL host', default='localhost') - parser.add_argument('--mysql_user', help='MySQL username', default='root') - parser.add_argument('--mysql_password', help='MySQL password', default='') - parser.add_argument('--mysql_port', help='MySQL port', default=3306) - parser.add_argument('--server_id', help='Server ID', default='') - parser.add_argument('--country', help='Subscribers country', default='US') - - argv = parser.parse_args() - mysql_host = argv.mysql_host - mysql_user = argv.mysql_user - mysql_password = argv.mysql_password - mysql_port = argv.mysql_port - server_id = argv.server_id - country = argv.country - - mongo = connect(host=argv.mongo_uri) - if not mongo: - sys.exit(1) - - server = ServiceSettings.objects(id=server_id).first() - if not server: - sys.exit(1) - - db = mysql.connector.connect( - host=mysql_host, - port=mysql_port, - user=mysql_user, - passwd=mysql_password, - database='xtream_iptvpro' - ) +def import_subscribers_to_server(db, server): cursor = db.cursor(dictionary=True) - sql = 'SELECT username,password,created_at,exp_date FROM users' - cursor.execute(sql) - sql_subscribers = cursor.fetchall() for sql_entry in sql_subscribers: new_user = SubscriberUser.make_subscriber(email=sql_entry['username'], password=sql_entry['password'], - country=country) + country='US') new_user.status = SubscriberUser.Status.ACTIVE created_at = sql_entry['created_at'] if created_at: @@ -73,4 +38,40 @@ if __name__ == '__main__': server.add_subscriber(new_user) cursor.close() - db.close() + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(prog=PROJECT_NAME, usage='%(prog)s [options]') + parser.add_argument('--mongo_uri', help='MongoDB credentials', default='mongodb://localhost:27017/iptv') + parser.add_argument('--mysql_host', help='MySQL host', default='localhost') + parser.add_argument('--mysql_user', help='MySQL username', default='root') + parser.add_argument('--mysql_password', help='MySQL password', default='') + parser.add_argument('--mysql_port', help='MySQL port', default=3306) + parser.add_argument('--server_id', help='Server ID', default='') + + argv = parser.parse_args() + mysql_host = argv.mysql_host + mysql_user = argv.mysql_user + mysql_password = argv.mysql_password + mysql_port = argv.mysql_port + server_id = argv.server_id + country = argv.country + + mongo = connect(host=argv.mongo_uri) + if not mongo: + sys.exit(1) + + ser = ServiceSettings.objects(id=server_id).first() + if not ser: + sys.exit(1) + + d = mysql.connector.connect( + host=mysql_host, + port=mysql_port, + user=mysql_user, + passwd=mysql_password, + database='xtream_iptvpro' + ) + + import_subscribers_to_server(d, ser) + d.close()