webcamd-0.7.6+repack0/0000755000000000000000000000000013642434332013151 5ustar rootrootwebcamd-0.7.6+repack0/webcamd0000755000000000000000000002561607440203045014505 0ustar rootroot#!/usr/bin/perl #__ __ _ _ #\ \ / /__| |__ ___ __ _ _ __ ___ __| | # \ \ /\ / / _ \ '_ \ / __/ _` | '_ ` _ \ / _` | # \ V V / __/ |_) | (_| (_| | | | | | | (_| | # \_/\_/ \___|_.__/ \___\__,_|_| |_| |_|\__,_| # #webcamd v0.7.5 # #diff : Petite version temporaire, désactivation possible de la date ds le fichier de conf (pour eviter un bug actuel # # #Ce code est distribué sous license GPL #Début de code par Pierre Dinh-van http://www.bill2tux.org le 03/07/2001 à 04h21 :-) # #last modif : 23/02/2002 par Pierre Dinh-van # #Ce code necessite : # *perl (5.0 minimum je pense) # *video4linux (specialement le programme v4lctl) # *un serveur web installé (optionel) # *une webcam peut etre bien utile :-) # *perlmagick (module ImageMagick pour perl) # #note : code en construction :) #N'oubliez pas d'editer le fichier de configuration et les templates HTML ! ####### #Code inutile a modifier pour la configuration (en principe) # #You needn't to change anything before this line, edit config file # $home=$ENV{'HOME'}; if (!(-e "$home/.webcamd")) { mkdir("$home/.webcamd"); print("First run of webcamd !\n"); } if (-e "$home/.webcamd/webcamd.conf") { open(CONFIG,"$home/.webcamd/webcamd.conf"); @config = ; close(CONFIG); print("Configuration file found\n"); } #elsif (-e "/etc/webcamd.conf") # { # open(CONFIG,"/etc/webcamd.conf"); # @config = ; # close(CONFIG); # print("Using /etc/webcamd.conf configuration file\n"); # } #### #### if (-e "$home/.webcamd/index_up.html") { open(UP,"$home/.webcamd/index_up.html"); @index_up = ; close(UP); } else { print("RTFM, missing template ($home/.webcamd/index_up.html)\n"); exit; } if (-e "$home/.webcamd/index_down.html") { open(DOWN,"$home/.webcamd/index_down.html"); @index_down = ; close(DOWN); } else { print("RTFM, missing template ($home/.webcamd/index_down.html)\n"); exit; } #### ## # # if (@config == 0) { die("No configuration file was found. Unable to continue."); } else { %config = &analyse_config(); #section common $inter = $config{'inter'}; $www_path = $config{'www_path'}; $enable_ftp = $config{'enable_ftp'}; $cam_res = $config{'webcam_resolution'}; $device = $config{'device'}; #section picture $put_date = $config{'put_date'}; $font = $config{'font'}; $fontsize = $config{'fontsize'}; $fontcolor = $config{'fontcolor'}; $disp_box = $config{'disp_box'}; $boxcolor = $config{'boxcolor'}; $border = $config{'border'}; $bordercolor = $config{'bordercolor'}; #section ftp $host = $config{'host'}; $user = $config{'user'}; $port = $config{'port'}; $password = $config{'password'}; $directory = $config{'directory'}; } # # ## $action = $ARGV[0]; if ($action eq "") { die("Usage : {start|stop|refresh|(away)}\n"); } elsif ($ARGV[1] ne "") { die("Too many args\n"); } ## else { if ($action eq "start") { if (!(-e "$home/.webcamd/webcamd.pid")) #si le soft ne tourne pas encore { write_index(); print("webcamd run, pictures are taken every $inter secondes\n"); if (-e "$home/.webcamd/webcamd.stop") {`rm $home/.webcamd/webcamd.stop`}; #suppression si fichier de stop avant lancement open(PID,">$home/.webcamd/webcamd.pid"); #creation du fichier de pid (temoin du lancement du soft) close(PID); fork && exit; #rend la main while(1) { getshot(); if($put_date eq "yes") { addtime(); } else { system("mv $home/.webcamd/pre-webcam.jpg $home/.webcamd/webcam.jpg"); } move_file(); last if (-e "$home/.webcamd/webcamd.stop"); #boucle s'arrete si fichier d'arret present sleep($inter); } system("rm -f $home/.webcamd/webcamd.stop"); #suppression du fichier d'arret en cas d'arret } else #si le fichier de pid existe { print("Webcamd is already running\n"); } } elsif ($action eq "stop") { if (!(-e "$home/.webcamd/webcamd.stop")) #si le fichier de stop n'existe pas encore { if (-e "$home/.webcamd/webcamd.pid") #et si le fichier de pid existe { open(STOP,">$home/.webcamd/webcamd.stop"); #creation du fichier de stop close(STOP); system("rm -f $home/.webcamd/webcamd.pid &"); #suppression du pid print("Shutting down webcamd...\n"); write_index(); #ecriture de l'index cam offline } else { print ("Webcamd is not running !\n"); #si le pid n'existe pas exit; } } else { print("You have already ask webcamd to be stopped. Please wait...\n"); #si le stop existe deja } } elsif ($action eq "refresh") { getshot(); if($put_date eq "yes") { addtime(); } else { system("mv $home/.webcamd/pre-webcam.jpg $home/.webcamd/webcam.jpg"); } move_file(); print("Smile ! We are taking a shot ! :-)\n"); #prise d'image anticipée } else { print("I don't know this\n"); } } # #fin du code #### # ## sub write_index() { %hash=(INTER_REFRESH, $inter); sub parse_template() { my ($template, $key_list) = @_; $template =~ s{__(.*?)__}{exists($key_list->{$1}) ? $key_list->{$1} : ""}gsex; return $template; } open(INDEX,">$home/.webcamd/index.html"); if ($action eq "start") { foreach (@index_up) { $temp = &parse_template($_, \%hash); print INDEX $temp; } } else { foreach (@index_down) { print INDEX $_; } } close(INDEX); if ($enable_ftp eq "yes") { $filename = "$home/.webcamd/index.html"; $trans_mode = "A"; &upload($filename,$trans_mode); } else { system("mv $home/.webcamd/index.html $www_path/index.html"); } } ## ## sub getshot() { system("/usr/bin/v4lctl -c /dev/$device snap jpeg $cam_res $home/.webcamd/pre-webcam.jpg&"); } ## ## sub addtime() { #On utilise ImageMagick use Image::Magick; #On ouvre le fichier my $image = Image::Magick->new(magick=>'GIF',font=>$font); open(DATA, "$home/.webcamd/pre-webcam.jpg"); $image->Read(file=>DATA); close(DATA); #on choppe le temps local my $time=localtime(); #On ajoute une bordure pour faire zoli $image->Border(width=>$border, height=>$border, fill=>$bordercolor); #On ajoute le text #$image->Annotate( box=>$boxcolor, fill=>$fontcolor, pointsize=>$fontsize, stroke=>'black', text=>$time, gravity=>South, y=>$fontsize); if($disp_box eq "yes") { $image->Annotate( box=>$boxcolor, fill=>$fontcolor, pointsize=>$fontsize, stroke=>'black', text=>$time, gravity=>South, y=>'0'); } else { $image->Annotate(fill=>$fontcolor, pointsize=>$fontsize, text=>$time, gravity=>South, y=>'0'); } #On écrit le fichier my $filename = "$home/.webcamd/webcam.jpg"; open(DATA, ">$filename") or die "can't open $filename\n"; $image->Write(file=>DATA, filename=>$filename); close(DATA); } sub move_file() { if($enable_ftp eq "yes") { $filename = "$home/.webcamd/webcam.jpg"; $trans_mode = "I"; &upload($filename,$trans_mode); } else { system("mv $home/.webcamd/webcam.jpg $www_path/webcam.jpg"); } } ## sub upload($filename,$trans_mode) { #on utilise le protocole ftp use Net::FTP; $ftp = Net::FTP->new("$host",Port => $port, Passive => 1) or die "Can't connect: $@\n"; $ftp->login($user, $password) or die "Couldn't login\n"; $ftp->cwd($directory) or die "Couldn't change directory\n"; $ftp->type($trans_mode); $ftp->put($filename) or die "Couldn't put $filename\n"; } ## ## ## sub analyse_config() { my $i=$j=$k=0; ### LINE: foreach $line (@config) { $line =~ s/^\s*|\s*\n$//g; if(($line =~ /^\#/) || ($line eq "")) { next LINE; } if($line =~ /^") { $section = "common"; next LINE; } elsif($line eq "") { $section = "picture"; next LINE; } elsif($line eq "") { $section = "ftp"; next LINE; } elsif($line eq "") { print("Fonction away not yet implanted\n"); next LINE; } else { die("Config file not regular (section inconnue)\n"); } } if($section eq "common") { if(!(($line =~ /^ ### if(@common_line == 0) { print("No instructions found in config file for section \n"); } if(@picture_line == 0) { print("No instructions found in config file for section \n"); } if(@ftp_line == 0) { print("No instructions found in config file for section \n"); } else { foreach (@common_line) { @temp = ""; @temp = split(/\s*=\s*/,$_); if (@temp != 2) { print ("Trop de parametres pour la variable $temp[0] !"); } else { $common{$temp[0]} = $temp[1]; } } foreach (@picture_line) { @temp = ""; @temp = split(/\s*=\s*/,$_); if (@temp != 2) { print ("Trop de parametres pour la variable $temp[0] !"); } else { $picture{$temp[0]} = $temp[1]; } } foreach (@ftp_line) { @temp = ""; @temp = split(/\s*=\s*/,$_); if (@temp != 2) { print ("Trop de parametres pour la variable $temp[0] !"); } else { $ftp{$temp[0]} = $temp[1]; } } return %config = (%common,%ftp,%picture); } } ### ## # webcamd-0.7.6+repack0/README_EN0000644000000000000000000000413407440226560014416 0ustar rootrootWebcamd v 0.7.6 Devel team: - Pierre Dinh-van - Julien Danjou diff : +commented config file with some new variables +little bugfix with new perlmagick version -- +enable date add on picture in config file (to ignore a actual bug) -- +device choice in config file +font choice in config file Webcamd needs following softwares: *video4linux (v4lctl) *perl (>=5) *apache (optional) *libnet-perl (for uploading into a ftp server) *perlmagick (library imagemagick for perl) 1) Installation of webcamd: - Run 'make install' as root - Run 'make userinstall' as the user who will use webcamd (example: as pierre) - Edit /usr/local/bin/webcamd if/as you need :-) - You can edit HTML pages, but don't edit meta tags et don't modify __INTER_REFRESH__ To run webcamd: webcamd start To stop webcamd: webcamd stop To get a instant shot: webcamd refresh 2) Setup of webcamd - webcamd.conf Edit the configuration file $HOME/.webcamd/webcamd.conf (you should look directly $HOME/.webcamd/webcamd.conf which is now commented in french and english Here is an example: ----begin---8<--cut-here------- device = video0 <== the video device to use (without /dev/) www_path = /var/www/ <== where index and shot will be (if you are using a local web server) inter = 30 <== how many seconds wait before refresh enable_ftp = no <== if set to "no", send files to www_path; if "yes", use section to upload to a ftp server webcam_resolution = 352x288 <== pictures resolution disp_box = yes <== display box around date ? put_date = yes <== set to 'no' to enable the date writing on the picture font = clean <== font to use for date border = 0 <== border around the picture bordercolor = white <== border color fontsize = 15 <== time size boxcolor = white <== box color (box around the time) fontcolor = black <== time's color host = ftp.host.org <== ftp server user = ftp-login <== ftp login password = pass <== ftp password port = 21 <== ftp port (default is 21) directory = public_html <== directory where to put files ----end---8<--cut-here------- That's all ! webcamd-0.7.6+repack0/webcamd-setup0000755000000000000000000000121307457360033015637 0ustar rootroot#!/bin/bash INSTALL=install ANS=z echo "Installing webcamd configuration files in your ~/.webcamd directory" echo echo "THIS WILL ERASE YOUR EXISTING CONFIGURATIONS FILES" while [ $ANS != "y" -a $ANS != "n" ] do echo -n "Are you sure you want to do this ? [y/n] " read ANS; done if [ $ANS == "y" ] then $INSTALL -m 700 -d $HOME/.webcamd/ $INSTALL -m 600 /usr/share/doc/webcamd/examples/index_up.html $HOME/.webcamd/ $INSTALL -m 600 /usr/share/doc/webcamd/examples/index_down.html $HOME/.webcamd/ $INSTALL -m 600 /usr/share/doc/webcamd/examples/webcamd.conf $HOME/.webcamd/ echo echo "Installation done." else echo "Ok, nothing was done" fiwebcamd-0.7.6+repack0/TODO0000644000000000000000000000107107440226647013647 0ustar rootroot*ajouter un fichier ChangeLog :) *Le mode away sera peut etre bientot la avec la possibilitée d'ajouter des modes dans le fichier de conf. Cette fonctionalité permettant par exemple de mettre une image de substitution avec par exemple la commande webcamd away repas *Je ferai une interface graphique en gtk pour connaitre l'etat de webcamd, le lancer, l'arreter, ou faire un refresh, et pourquoi pas une interface de configuration -------- *Add a changelog file :) *Away mode will be here asap *GUI in GTK to know state of webcamd, or why not, to create config file.webcamd-0.7.6+repack0/Makefile0000644000000000000000000000074307457532024014621 0ustar rootroot# # webcamd - Webcam Daemon # # Makefile # DESTDIR= INSTALL=install BINDIR=$(DESTDIR)/usr/bin all: install: $(INSTALL) -d -m 755 $(BINDIR) $(INSTALL) -m 755 webcamd $(BINDIR) $(INSTALL) -m 755 webcamd-setup $(BINDIR) userinstall: $(INSTALL) -d -m 700 $(HOME)/.webcamd $(INSTALL) -m 700 webcamd.conf $(HOME)/.webcamd $(INSTALL) -m 700 index_up.html $(HOME)/.webcamd $(INSTALL) -m 700 index_down.html $(HOME)/.webcamd uninstall: rm -f $(BINDIR)/webcamd clean: rm -f *~webcamd-0.7.6+repack0/index_down.html0000644000000000000000000000076307440226754016211 0ustar rootroot Replace with the desired offline page title

Cam offline

no comment




Made By Webcamd 0.7.6,
Copyleft 2002 Pierre Dinh-van
& Julien Danjou

webcamd-0.7.6+repack0/webcamd.conf0000644000000000000000000000537407440225601015427 0ustar rootroot#Webcamd default config file #Fichier de configuration de webcamd d'origine # #lines begining with '#' are ignored by webcamd (comments) #les lignes commençant par le caractere '#' sont des commentaires ignorés par le programme #you can't put a comment at the end of an instruction line #vous ne pouvez pas mettre de commentaire à la fin d'une ligne contenant une instruction #Ex: # pud_date = no #blablabalaba #is not valid #You might only edit www_path & inter for an normal local use and enable_ftp and section for remote use #Il suffit d'editer les variables www_path et inter pour un usage local normal ; + enable_ftp et la section pour un usage distant #don't forget to edit html templates ($HOME/.webcamd/index_*.html) #n'oubliez pas d'editer les templates html ! ($HOME/.webcamd/index_*.html) #main section/Section principale #video device to use as webcam (should work if you don't have something like a TVcard => video1) #peripherique vidéo de la webcam (video1 si vous avez une carte TV) device = video0 #Webpage and picture storage path (if using a local webserver) #Chemin de stockage de la page/image de la webcam (si serveur web local) www_path = /var/www/ #time refresh in seconds (min might be 5s) #temps de rafraichissement de l'image (~5s min) inter = 30 #set to yes to enable ftp data send #mettre yes pour activer l'envoie par ftp enable_ftp = no #Webcam resolution (see your webcam manual) #resolution de votre webcam webcam_resolution = 352x288 #Picture treatment section/Section des options de traitement de l'image #enable date writing on picture ? [yes|no] #ecrire la date sur l'image ? [yes|no] put_date = yes #put the date into a box ? [yes|no] #mettre la date ds une boite ? [yes|no] disp_box = yes #Font to use to write date (verify it exists on your system) #Police de caracteres à utiliser pour ecrire la date font = clean #border size around the picture (0=none) #taille du cadre autour de l'image (0 : pas de cadre) border = 15 #Border color if enable #couleur du cadre bordercolor = black #font size for date writing #Taille de la police pour l'ecriture de la date fontsize = 14 #color of the box around the date #couleur de la boite autour du texte boxcolor = black #Font color #Couleur de la police fontcolor = white #FTP section options/Section des parametres FTP (if/si enable_ftp = yes) #remote ftp server address #Addresse du serveur ftp distant host = ftp.tuxfamily.org #FTP login #nom d'utilisateur ftp user = ftp-login #FTP login's password #mot de pass ftp de l'utilisateur ci dessus password = pass #Port where ftp server is running (may work with 21) #Port du serveur ftp (21 sauf cas précis) port = 21 #Remote directory to go to put files #Repertoire distant du serveur ftp où mettre les fichiers directory = public_html webcamd-0.7.6+repack0/index_up.html0000644000000000000000000000156407440226734015664 0ustar rootroot Replace with the desired up index title

My WebCAM

my head

No Comment




Made By Webcamd 0.7.6,
Copyleft 2002 Pierre Dinh-van
& Julien Danjou

webcamd-0.7.6+repack0/README_FR0000644000000000000000000000466407440226540014431 0ustar rootrootWebcamd v 0.7.6 Devel team: - Pierre Dinh-van - Julien Danjou diff : +Fichier de configuration commenté (avec ajout de quelques variables +petite reparation à cause de la nouvelle version de perlmagick -- +Choix d'activation de la date (en attendant le bugfix final) -- +Choix du peripherique video dans le fichier de conf +Choix de la police a utiliser pour la date Webcamd a besoin des logiciels suivants pour fonctionner: *video4linux (v4lctl) *perl (>=5) *apache (optionel) *libnet-perl (pour l'upload par ftp) *perlmagick (lib imagemagick pour perl) 1) Installation de Webcamd: - Lancer 'make install' en tant que root - Lancer 'make userinstall' en tant qu'utilisateur de webcamd (exemple: en tant que pierre) - Editer /usr/local/bin/webcamd si besoin - Vous pouvez personnaliser les page html, mais pour la page index_up.html, ne pas modifier les meta et ne pas remplacer la variable __INTER_REFRESH__ Pour lancer webcamd: webcamd start Pour le stopper: webcamd stop Pour faire un cliché prématuré: webcamd refresh 2) Configuration de webcamd editez le fichier de configuration $HOME/.webcamd/webcamd.conf le fichier étant maintenant commenté, regardez dedans directement... ---Debut---8<---couper-ici---- device = video0 <== peripherique video a utiliser www_path = /var/www/ <== l'endroit local ou les index et la photo sera mise (en cas de serveur web local) inter = 30 <== intervalle du refresh de l'image enable_ftp = no <== si "no", envoie les fichiers vers le www_path local, si "yes", utilise la section du fichier de conf pour uploader vers un serveur ftp distant webcam_resolution = 352x288 <== résolution de l'image prise par la camera disp_box = yes <== mettre le texte dans une boite ? put_date = no <== mettre 'yes' pour ajouter la date à l'image (buguée pour l'instant) font = clean <== police a utiliser pour la date border = 0 <== bordure autour de la photo bordercolor = white <== couleur de la potentielle bordure fontsize = 15 <== taille de l'heure boxcolor = white <== couleur de la boite entourant la date fontcolor = black <== couleur de la date host = ftp.host.org <== serveur ftp user = ftp-login <== login ftp password = pass <== password du compte ftp port = 21 <== port du serveur ftp (default 21) directory = public_html <== sous répertoire où uploader dans le compte ftp ---Fin-----8<---couper-ici---- Voila...c'est tout pour le moment :)