Ejemplo n.º 1
0
def main():

    # get some settings from setting file
    settings = SettingFileReader()
    defaultOutput = settings.getSetting("defaultSettings", "output")
    defaultWidth = settings.getSetting("defaultSettings", "width")
    defaultFramerate = settings.getSetting("defaultSettings", "framerate")
    defaultBitrateKb = settings.getSetting("defaultSettings", "bitratekb")



    description = "Compose a timelapse movie from a sequence of jpg images"

    #parser = argparse.ArgumentParser(description=description)
    parser = GooeyParser(description=description)

    parser.add_argument('-input', required=True, type=argparse.FileType('r'), help='A jpeg file from the sequence' , widget="FileChooser")
    parser.add_argument('-output', required=False, default=defaultOutput, help='Output sequence file name (default : ' + defaultOutput + ')' )
    parser.add_argument('-width', required=False, default=defaultWidth, type=int, help='With of the output sequence (default : ' + str(defaultWidth) + ')' )
    parser.add_argument('-height', required=False, type=int, help='height of the output sequence (default : keeps proportion to width)' )
    parser.add_argument('-framerate', required=False, default=defaultFramerate, type=int, help='Framerate of the output sequence (default : ' + str(defaultFramerate) + ')' )
    parser.add_argument('-bitrate', required=False, default=1920, type=int, help='Bitrate of the output sequence in kb/s (default : ' + str(defaultBitrateKb) + 'kb/s)' )

    args = parser.parse_args()


    print args.input.name
    print args.output
    print args.width
    print args.height
    print args.framerate
    print args.bitrate
Ejemplo n.º 2
0
    def __init__(self, FirstRawImage):

        # guessing the raw extension from the first image
        self._rawExtension = os.path.splitext(os.path.basename(FirstRawImage))[1]

        # guessing the input folder from the first image
        self._imageFolder = os.path.dirname(FirstRawImage)

        self._xmpBaseList = []
        self._xmpDictionary = {}

        self._xmpMatrixFileName =  self._imageFolder + os.sep + self._xmpMatrixFileName
        self._settingCouples = []
        settings = SettingFileReader()
        self._settingCouples = settings.getItems('rawDevSettings')
Ejemplo n.º 3
0
def main():

    # get some settings from setting file
    settings = SettingFileReader()
    defaultOutput = settings.getSetting("defaultSettings", "output")
    defaultWidth = settings.getSetting("defaultSettings", "width")
    defaultFramerate = settings.getSetting("defaultSettings", "framerate")
    defaultBitrateKb = settings.getSetting("defaultSettings", "bitratekb")



    description = "Download tracks and playlists from Youtube."

    #parser = argparse.ArgumentParser(description=description)
    parser = GooeyParser(description=description)

    parser.add_argument('-output', required=True, help='Folder to save the tracks' , widget="DirChooser")

    parser.add_argument('-track', required=False, default=None, help='Youtube track ID' )
    parser.add_argument('-playlist', required=False, default=None, help='Youtube playlist ID' )
    parser.add_argument('-audio', action="store_true", default=False, help="Download only the audio part (usualy m4a format)")

    args = parser.parse_args()


    # the user must have chosen between a track and a Playlist.
    # Though none of them is mandatory, so we have to check.
    if(not args.track and not args.playlist):
        print("[ERROR] You must fill at least one of those fields:\n\t- Track - to download a single track\n\t- Playlist - to download a entire playlist")


    else:
        pw = PafyWrapper()

        # download a track
        if(args.track):
            try:
                pw.downloadTrack(args.track, path=args.output, audio=args.audio)
            except ValueError as e:
                print("[INVALID URL]" + e)

        if(args.playlist):
            #try:
            print(args.playlist)
            pw.downloadPlaylist(args.playlist,  path=args.output, audio=args.audio)
Ejemplo n.º 4
0
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library.
'''

import sys
import os
from SettingFileReader import *

# main
if __name__ == '__main__':

    # gives priority to local libs
    sys.path.insert(0, "./lib/python")

    # cleaning terminal
    os.system('cls' if os.name == 'nt' else 'clear')

    print(
        "\n------------------------ BLANK_PY -----------------------------------------\n"
    )

    # loading a setting from the setting file
    settings = SettingFileReader()
    someSetting = settings.getSetting("group2", "param1")
    print(someSetting)

    # you want to update a param in the setting.ini file? no problem
    settings.setSetting("group2", "param3", "leParam3")
Ejemplo n.º 5
0
    return datetime.datetime.now().strftime("%Y-%m-%dT%H-%M")


# main
if __name__ == '__main__':

    # cleaning terminal
    os.system('cls' if os.name == 'nt' else 'clear')

    print("\n------------------------ Mapbox Downloader -------------------------------------\n")


    print("Reading settings...")

    # loading a setting from the setting file
    settings = SettingFileReader()

    # get geobox boundaries
    west = settings.getSetting("geobox", "west")
    south = settings.getSetting("geobox", "south")
    east = settings.getSetting("geobox", "east")
    north = settings.getSetting("geobox", "north")

    # get other param
    resolution =  settings.getSetting("image", "resolutionFactor")
    skin = settings.getSetting("image", "skin")
    zoom = settings.getSetting("image", "zoom")


    # get files and folder
    temporaryFolder = settings.getSetting("files", "temporaryFolder")
Ejemplo n.º 6
0
def main():

    # get some settings from setting file
    settings = SettingFileReader()
    siteLocation = settings.getSetting("blogSettings", "siteLocation")
    defaultAuthor = settings.getSetting("blogSettings", "defaultAuthor")
    defaultThumbs = settings.getSetting("blogSettings", "defaultThumbs").split()
    randomThumb = random.choice(defaultThumbs)


    description = "Prepares a new post for a Jekyll blog.\nversion: " + str(__version__) + "\n"


    #parser = argparse.ArgumentParser(description=description)
    parser = argparse.ArgumentParser(description=description)


    # mendatory
    parser.add_argument('-title', required=False, help='The title of the blog post')
    parser.add_argument('-thumb', required=False, default=randomThumb, help='Top image, will be copied into the /img/ blog folder. Can be local or start by http' )

    # optional
    parser.add_argument('-url', required=False, default=None, help='Default : blog title with dash')
    parser.add_argument('-images', required=False, default=None, help='One or more images to include in the post', nargs='*')
    parser.add_argument('-author', required=False, default=defaultAuthor, help='Default : ' + defaultAuthor)
    parser.add_argument('-background', required=False, default=None, help='Backgound image, will be copied into the /img/ blog folder' )
    parser.add_argument('-toc', required=False, action='store_true', help='Adds the Table Of Content' )
    parser.add_argument('-draft', required=False, action='store_true', help='Place it in the _draft folder (not published)' )

    parser.add_argument('--version', action='version', version=str(__version__))

    args = parser.parse_args()



    todayPrefix = datetime.date.today().strftime('%Y-%m-%d')
    todayFolder = datetime.date.today().strftime('%Y/%m/%d')


    imagesToWrite = ""
    imageLocalAddress = ""

    # adding all the other images
    if(args.images):

        for img in args.images:

            if(img.startswith("http")):
                tmpImage = img

            # the image is local
            else:
                tmpImage = "../img/" + todayFolder + "/" + os.path.basename(img)
                localDestFolder = siteLocation + os.sep + "img" + os.sep + todayFolder

                if(not os.path.exists(localDestFolder)):
                    os.makedirs(localDestFolder)

                imageLocalAddress = imageLocalAddress + "img/" + todayFolder + "/" + os.path.basename(img) + "\n"

                shutil.copyfile(img, localDestFolder + os.sep + os.path.basename(img))


            imagesToWrite = imagesToWrite + "![](" + tmpImage + ")\n"


        # if we just wanted to copy some picture, and not to create a whole article
        if(not args.title):
            print("--------------------------------------------------------------------------------")
            print("Image sucessfully written in Jekyll blog subdir:")
            print(imageLocalAddress)
            print("--------------------------------------------------------------------------------")
            print("Markdown integration code:")
            print imagesToWrite
            #print("--------------------------------------------------------------------------------")

            exit()


    # quiting when title is missing
    if(not args.title):
        print("ERROR : you should use the -title argument to create a new article")
        print("or use -image to just copy images.")
        print("use -help for other options.")
        exit()



    # copying the main image to img/ subfolder

    # the image is distant
    if(args.thumb.startswith("http")):
        thumb = args.thumb

    # the image is local
    else:
        thumb = "../img/" + todayFolder + "/" + os.path.basename(args.thumb)
        localDestFolder = siteLocation + os.sep + "img" + os.sep + todayFolder

        if(not os.path.exists(localDestFolder)):
            os.makedirs(localDestFolder)

        shutil.copyfile(args.thumb, localDestFolder + os.sep + os.path.basename(args.thumb))



    # copying the background if becessary
    if(args.background):
        # the image is distant
        if(args.background.startswith("http")):
            background = args.background

        # the image is local
        else:
            background = "../img/" + todayFolder + "/" + os.path.basename(args.background)
            localDestFolder = siteLocation + os.sep + "img" + os.sep + todayFolder

            if(not os.path.exists(localDestFolder)):
                os.makedirs(localDestFolder)

            shutil.copyfile(args.background, localDestFolder + os.sep + os.path.basename(args.background))

    else:
        background = None




    yamlHeader = "---\n"
    yamlHeader = yamlHeader + "layout : post\n"
    yamlHeader = yamlHeader + "date : " + todayPrefix + "\n"
    yamlHeader = yamlHeader + "title : " + args.title + "\n"
    yamlHeader = yamlHeader + "thumb : " + thumb + "\n"
    yamlHeader = yamlHeader + "backgrounds : " + str(background) + "\n"
    yamlHeader = yamlHeader + "show_tags : false\n"
    yamlHeader = yamlHeader + "show_categories : false\n"
    yamlHeader = yamlHeader + "excerpt : \"this is the excerpt\"\n"
    yamlHeader = yamlHeader + "author : \"" + args.author + "\"\n"
    yamlHeader = yamlHeader + "---\n\n"

    if(args.toc):
        yamlHeader = yamlHeader + "* TOC\n"
        yamlHeader = yamlHeader + "{:toc}\n\n"

    # writing images
    yamlHeader = yamlHeader + imagesToWrite


    # saving the markdown file
    if(args.draft):
        draftpath = siteLocation + os.sep + "_draft"
        if(not os.path.exists(draftpath)):
            os.makedirs(draftpath)
        filename = draftpath + os.sep + todayPrefix + "-"
    else:
        filename = siteLocation + os.sep + "_posts" + os.sep + todayPrefix + "-"



    if(args.url):
        filename = filename + args.url.replace(" ", "-")

    else:
        filename = filename + args.title.replace(" ", "-")

    filename = filename + ".md"

    file = open(filename, "w")
    file.write(yamlHeader)
    file.close()


    print("\nSucessfully written at:")
    print(filename)
    print("--------------------------------------------------------------------------------")
    print("                               Post content\n")
    print yamlHeader
    print("--------------------------------------------------------------------------------")
Ejemplo n.º 7
0
def main():

    # get some default settings from setting file
    settings = SettingFileReader()
    defaultOutput = settings.getSetting("defaultSettings", "output")
    defaultWidth = settings.getSetting("defaultSettings", "width")
    defaultFramerate = settings.getSetting("defaultSettings", "framerate")
    defaultBitrateKb = settings.getSetting("defaultSettings", "bitratekb")
    description = settings.getSetting("defaultSettings", "description")



    codecList = ["libx264", "mpeg4", "rawvideo", "png", "libvorbis", "libvpx"]
    codecDesc = ["libx264 : default codec, lossy compression", "mpeg4 : higher quality", "rawvideo : perfect quality, huge size ", "png : perfect quality, reasonable size", "libvorbis : good quality, rare codec ", "libvpx : good for the Web"]
    codecExt  = [".mp4", ".mp4", ".avi", ".avi", ".ogv", ".webm"]

    # dealing with the parser
    parser = GooeyParser(description=description)
    parser.add_argument('-input', required=True, type=argparse.FileType('r'), help='A jpeg file from the sequence' , widget="FileChooser")
    parser.add_argument('-output', required=False, default=defaultOutput, help='Output sequence file name (default : ' + defaultOutput + '). The file will be saved in the input folder.' )
    parser.add_argument('-codec', choices=codecList, help=" - ".join(codecDesc) + " (default : libx264)", default=codecList[0])
    parser.add_argument('-width', required=False, default=defaultWidth, type=int, help='Width of the output sequence in pixels (default : ' + str(defaultWidth) + ')' )
    parser.add_argument('-height', required=False, type=int, help='height of the output sequence in pixels (default : keeps proportions to width)' )
    parser.add_argument('-framerate', required=False, default=defaultFramerate, type=int, help='Number of frame per second of the output sequence (default : ' + str(defaultFramerate) + ')' )
    parser.add_argument('-bitrate', required=False, default=defaultBitrateKb, type=int, help='Bitrate of the output sequence in kb/s (default : ' + str(defaultBitrateKb) + 'kb/s). Only compatible with libx264 codec.' )

    args = parser.parse_args()

    '''
    print args.input.name
    print args.output
    print args.width
    print args.height
    print args.framerate
    print args.bitrate
    print args.codec
    '''

    # getting all the jpg from this folder
    imgFolder = Utils.getFolderName(args.input.name)
    imgExt = Utils.getFileExt(args.input.name)

    print("Folder :")
    print("\t" + imgFolder + "\n")
    print("Image extension :")
    print("\t" + imgExt + "\n")
    print("Looking for files...")

    # looking for files
    jpgList = sorted(glob.glob( imgFolder + os.sep + '*' + imgExt))

    print("\t" + str(len(jpgList)) + " files where found.\n")

    if(len(jpgList) == 0):
        print("ERROR : unable to continue, 0 image files where found.")
        exit()

    # importing moviepy
    try:
        from moviepy.editor import *

        # getting codec info
        codecIndex = codecList.index(args.codec)
        outputExtension = codecExt[codecIndex]

        outputFile = imgFolder + os.sep  + args.output + outputExtension

        print("Codec :")
        print("\t" + args.codec + "\n")
        print("output file :")
        print("\t" + outputFile + "\n")

        tl = ImageSequenceClip(jpgList, fps=args.framerate)

        # dealing with image proportions
        if(args.height):
            tlhd = tl.resize(width=args.width, height=args.height)
        else:
            tlhd = tl.resize(width=args.width)

        bitrate = str(args.bitrate * 1024)

        a = datetime.datetime.now()
        tlhd.write_videofile(outputFile, codec=args.codec , fps=args.framerate, bitrate=bitrate, threads=2, write_logfile=True)
        b = datetime.datetime.now()

        print("Processing time : " + str( (b-a).seconds) + " seconds")

    # iport failled
    except ImportError:
        print("ERROR : impossible to import Moviepy module.")
Ejemplo n.º 8
0

# main
if __name__ == '__main__':

    # cleaning terminal
    os.system('cls' if os.name == 'nt' else 'clear')

    print(
        "\n------------------------ Mapbox Downloader -------------------------------------\n"
    )

    print("Reading settings...")

    # loading a setting from the setting file
    settings = SettingFileReader()

    # get geobox boundaries
    west = settings.getSetting("geobox", "west")
    south = settings.getSetting("geobox", "south")
    east = settings.getSetting("geobox", "east")
    north = settings.getSetting("geobox", "north")

    # get other param
    resolution = settings.getSetting("image", "resolutionFactor")
    originalSkin = settings.getSetting("image", "skin")
    zoom = settings.getSetting("image", "zoom")

    abspath = os.path.abspath(os.path.dirname(__file__)) + "/../"
    skin = abspath + "temp/" + os.path.basename(
        originalSkin)[0:-4] + "_" + str(int(time.time())) + ".tm2"
Ejemplo n.º 9
0
import os
import math
from SettingFileReader import *
from Geographic import *


# main
if __name__ == '__main__':

    # cleaning terminal
    os.system('cls' if os.name == 'nt' else 'clear')

    print("\n------------------------ GpxStack -----------------------------------------\n")

    settings = SettingFileReader()

    print settings.getAutoGeoBox()
    print settings.getNorthBorder()
    print settings.getSouthBorder()
    print settings.getWestBorder()
    print settings.getEastBorder()
    print settings.getPixelPerDegree()

    print settings.getStrokeWidth()
    print settings.getStrokeColor()



    geox = Geographic()
    geox.setGpxFile("")