示例#1
0
文件: views.py 项目: bobun35/ba
def copy_playlist(request):
    """
    vue utilisee pour charger de nouvelles bande-annonces
    """
    if request.method == "POST":
        form = CopyBaForm(request.POST)
        if form.is_valid():
            usb_ba_path = form.cleaned_data["usb_ba_path"]
            try:
                ### copie des bande annonces
                my_ba_list = MyBaList()
                usb_ba_list = my_ba_list.select_playlist(my_ba_list.listdir_fullpath_ba(usb_ba_path), "prog")
                local_ba_list = my_ba_list.ba_list_prog

                # compare the local_ba_list already there and the usb_ba_list to copy only the new ba
                local_ba_basename = [os.path.basename(x) for x in local_ba_list]
                for each_ba in usb_ba_list:
                    if not os.path.basename(each_ba) in local_ba_basename:
                        shutil.copy(each_ba, env_variables.ba_directory)

                # list again all ba
                my_ba_list = MyBaList().ba_list_all
                whole_ba_list = sorted([os.path.basename(x) for x in my_ba_list])

                ### copie des slides
                my_slide_list = MySlideList()
                usb_slide_list = my_slide_list.select_playlist(
                    my_slide_list.listdir_fullpath_slide(usb_ba_path), "prog"
                )
                local_slide_list = my_slide_list.slide_list_prog

                # compare the local_slide_list already there and the usb_slide_list to copy only the new ba
                local_slide_basename = [os.path.basename(x) for x in local_slide_list]
                for each_slide in usb_slide_list:
                    if not os.path.basename(each_slide) in local_slide_basename:
                        shutil.copy(each_slide, env_variables.ba_directory)

                # list again all slides
                my_slide_list = MySlideList().slide_list_all
                whole_slide_list = sorted([os.path.basename(x) for x in my_slide_list])

                return render(
                    request,
                    "bande_annonce/advanced_playlist.html",
                    {"whole_ba_list": whole_ba_list, "whole_slide_list": whole_slide_list},
                )

            except:
                message = "ECHEC lors de la copie des bande annonces ou des slides"
                return render(request, "bande_annonce/to_print.html", {"to_print": message})
    else:
        form = CopyBaForm()
        return render(request, "bande_annonce/copy_playlist.html", {"form": form})
示例#2
0
def clean():
    my_ba_list = MyBaList()
    my_slide_list = MySlideList()

    try:
        my_ba_list.delete(my_ba_list.ba_list_in_past)
    except:
        logging.error("erreurs en essayant de deleter les bande-annonces locales")
        print("erreurs en essayant de deleter les bande-annonces locales")

    try:
        my_slide_list.delete(my_slide_list.slide_list_in_past)
    except:
        logging.error("erreurs en essayant de deleter les slides locaux")
        print("erreurs en essayant de deleter les slideds locaux")
示例#3
0
文件: MyPlaylist.py 项目: bobun35/ba
class MyPlaylist:
    def __init__(self):
        self.ba_list = MyBaList()
        self.slide_list = MySlideList()
        self.playlist = self.make_playlist_to_run()
        logging.info("PLAYLIST APRES TOUTES LES INSERTIONS:\n %s" % (self))

    def __str__(self):
        chaine = "Playlist a jouer:\n"
        for each in self.playlist:
            if isinstance(each, PlaylistElement):
                chaine += each.ba_path + "\n" + each.slide_path + "\n"
            elif isinstance(each, Ba) or isinstance(each, Slide):
                chaine += each.filepath + "\n"
        return chaine

    def make_playlist_to_run(self):
        """
        fonction qui fabrique une playlist a partir de la ba_list, de la slide_list, insere les slides de promo
        """

        playlist = []

        # s'il y a un slide, on cree un PlaylistElement avec la ba et le slide correspondant
        # sinon, on ajoute la ba seule
        for each_ba in self.ba_list.ba_list_prog:
            slidename = each_ba.filename.split(".")[0] + ".jpg"
            if self.slide_list.slidename_is_in_slidelist_prog(slidename):
                slidepath = self.slide_list.get_slidepath_from_slidename(slidename)
                playlist.append(PlaylistElement(each_ba.filepath, slidepath))
            else:
                playlist.append(each_ba)

        # on ajoute a la playlist, les ecrans de promo apres chaque bande-annonce reelle
        # (c'est a dire une bande annonce plus un slide)
        if env_variables.slide_promo_list != []:
            new_playlist = []
            for each in playlist:
                if isinstance(each, PlaylistElement):
                    new_playlist.append(each)
                    new_playlist.extend(map(Slide, env_variables.slide_promo_list))
                else:
                    new_playlist.append(each)
            playlist = list(new_playlist)
        return playlist
示例#4
0
文件: MyPlaylist.py 项目: bobun35/ba
 def __init__(self):
     self.ba_list = MyBaList()
     self.slide_list = MySlideList()
     self.playlist = self.make_playlist_to_run()
     logging.info("PLAYLIST APRES TOUTES LES INSERTIONS:\n %s" % (self))