1#!/usr/bin/env python 2 3import sys 4import os 5import shutil 6import re 7 8def remove_console(text): 9 return re.sub('console.(log|debug)\((.*)\);?', '', text) 10 11me_filename = 'mediaelement' 12mep_filename = 'mediaelementplayer' 13combined_filename = 'mediaelement-and-player' 14 15# BUILD MediaElement (single file) 16 17print('building MediaElement.js') 18me_files = [] 19me_files.append('me-header.js') 20me_files.append('me-namespace.js') 21me_files.append('me-utility.js') 22me_files.append('me-plugindetector.js') 23me_files.append('me-featuredetection.js') 24me_files.append('me-mediaelements.js') 25me_files.append('me-shim.js') 26me_files.append('me-i18n.js') 27me_files.append('me-i18n-locale-de.js') 28me_files.append('me-i18n-locale-zh.js') 29 30code = '' 31 32for item in me_files: 33 src_file = open('js/' + item,'r') 34 code += src_file.read() + "\n" 35 36code = remove_console(code) 37 38tmp_file = open('../build/' + me_filename + '.js','w') 39tmp_file.write(code) 40tmp_file.close() 41 42# BUILD MediaElementPlayer (single file) 43print('building MediaElementPlayer.js') 44mep_files = [] 45mep_files.append('mep-header.js') 46mep_files.append('mep-library.js') 47mep_files.append('mep-player.js') 48mep_files.append('mep-feature-playpause.js') 49mep_files.append('mep-feature-stop.js') 50mep_files.append('mep-feature-progress.js') 51mep_files.append('mep-feature-time.js') 52mep_files.append('mep-feature-volume.js') 53mep_files.append('mep-feature-fullscreen.js') 54mep_files.append('mep-feature-tracks.js') 55mep_files.append('mep-feature-contextmenu.js') 56mep_files.append('mep-feature-postroll.js') 57# mep_files.append('mep-feature-sourcechooser.js') 58 59code = '' 60 61for item in mep_files: 62 src_file = open('js/' + item,'r') 63 code += src_file.read() + "\n" 64 65code = remove_console(code) 66 67tmp_file = open('../build/' + mep_filename + '.js','w') 68tmp_file.write(code) 69tmp_file.close() 70 71# MINIFY both scripts 72 73print('Minifying JavaScript') 74# os.system("java -jar yuicompressor-2.4.2.jar ../build/" + me_filename + ".js -o ../build/" + me_filename + ".min.js --charset utf-8 -v") 75# os.system("java -jar yuicompressor-2.4.2.jar ../build/" + mep_filename + ".js -o ../build/" + mep_filename + ".min.js --charset utf-8 -v") 76os.system("java -jar compiler.jar --js ../build/" + me_filename + ".js --js_output_file ../build/" + me_filename + ".min.js") 77os.system("java -jar compiler.jar --js ../build/" + mep_filename + ".js --js_output_file ../build/" + mep_filename + ".min.js") 78 79# PREPEND intros 80def addHeader(headerFilename, filename): 81 82 # get the header text 83 tmp_file = open(headerFilename) 84 header_txt = tmp_file.read(); 85 tmp_file.close() 86 87 # read the current contents of the file 88 tmp_file = open(filename) 89 file_txt = tmp_file.read() 90 tmp_file.close() 91 92 # open the file again for writing 93 tmp_file = open(filename, 'w') 94 tmp_file.write(header_txt) 95 # write the original contents 96 tmp_file.write(file_txt) 97 tmp_file.close() 98 99 100addHeader('js/me-header.js', '../build/' + me_filename + '.min.js') 101addHeader('js/mep-header.js', '../build/' + mep_filename + '.min.js') 102 103 104# COMBINE into single script 105print('Combining scripts') 106code = '' 107src_file = open('../build/' + me_filename + '.js','r') 108code += src_file.read() + "\n" 109src_file = open('../build/' + mep_filename + '.js','r') 110code += src_file.read() + "\n" 111 112tmp_file = open('../build/' + combined_filename + '.js','w') 113tmp_file.write(code) 114tmp_file.close() 115 116code = '' 117src_file = open('../build/' + me_filename + '.min.js','r') 118code += src_file.read() + "\n" 119src_file = open('../build/' + mep_filename + '.min.js','r') 120code += src_file.read() + "\n" 121 122tmp_file = open('../build/' + combined_filename + '.min.js','w') 123tmp_file.write(code) 124tmp_file.close() 125 126 127# MINIFY CSS 128print('Minifying CSS') 129src_file = open('css/mediaelementplayer.css','r') 130tmp_file = open('../build/mediaelementplayer.css','w') 131tmp_file.write(src_file.read()) 132tmp_file.close() 133os.system("java -jar yuicompressor-2.4.2.jar ../build/mediaelementplayer.css -o ../build/mediaelementplayer.min.css --charset utf-8 -v") 134 135#COPY skin files 136print('Copying Skin Files') 137shutil.copy2('css/controls.png','../build/controls.png') 138shutil.copy2('css/controls.svg','../build/controls.svg') 139shutil.copy2('css/bigplay.png','../build/bigplay.png') 140shutil.copy2('css/bigplay.svg','../build/bigplay.svg') 141shutil.copy2('css/loading.gif','../build/loading.gif') 142 143shutil.copy2('css/mejs-skins.css','../build/mejs-skins.css') 144shutil.copy2('css/controls-ted.png','../build/controls-ted.png') 145shutil.copy2('css/controls-wmp.png','../build/controls-wmp.png') 146shutil.copy2('css/controls-wmp-bg.png','../build/controls-wmp-bg.png') 147 148print('DONE!') 149