mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-10-11 09:03:40 +02:00
2017-03-29 Fred Gleason <fredg@paravelsystems.com>
* Added a 'CUTS.SHA1_HASH' field to the database. * Incremented the database version to 261. * Added a 'Sha1' column to the Cut List in 'rdlibrary/audio_cart.cpp'. * Added 'RDCut::sha1Hash()' and 'RDCut::setSha1Hash()' methods in 'lib/rdcut.cpp' and 'lib/rdcut.h'. * Added a '--rehash=' directive to rddbcheck(8). * Added a 'Rehash' Web API call. * Added an 'RDRehash' class in 'lib/rdrehash.cpp' and 'lib/rdrehash.h'.
This commit is contained in:
@@ -39,6 +39,7 @@ dist_rdxport_cgi_SOURCES = audioinfo.cpp\
|
||||
import.cpp\
|
||||
logs.cpp\
|
||||
rdxport.cpp rdxport.h\
|
||||
rehash.cpp\
|
||||
schedcodes.cpp\
|
||||
services.cpp\
|
||||
trimaudio.cpp
|
||||
|
@@ -30,6 +30,7 @@
|
||||
#include <rdsettings.h>
|
||||
#include <rdconf.h>
|
||||
#include <rdgroup.h>
|
||||
#include <rdhash.h>
|
||||
#include <rdlibrary_conf.h>
|
||||
|
||||
#include <rdxport.h>
|
||||
@@ -214,12 +215,15 @@ void Xport::Import()
|
||||
resp_code=400;
|
||||
break;
|
||||
}
|
||||
/*
|
||||
delete conv;
|
||||
delete settings;
|
||||
delete conf;
|
||||
delete cut;
|
||||
delete cart;
|
||||
*/
|
||||
if(resp_code==200) {
|
||||
cut->setSha1Hash(RDSha1Hash(RDCut::pathName(cut->cutName())));
|
||||
printf("Content-type: application/xml\n");
|
||||
printf("Status: %d\n",resp_code);
|
||||
printf("\n");
|
||||
|
@@ -264,6 +264,10 @@ Xport::Xport(QObject *parent)
|
||||
ListServices();
|
||||
break;
|
||||
|
||||
case RDXPORT_COMMAND_REHASH:
|
||||
Rehash();
|
||||
break;
|
||||
|
||||
default:
|
||||
printf("Content-type: text/html\n\n");
|
||||
printf("rdxport: missing/invalid command\n");
|
||||
|
@@ -64,6 +64,7 @@ class Xport : public QObject
|
||||
void DeleteLog();
|
||||
void ListLogs();
|
||||
void ListLog();
|
||||
void Rehash();
|
||||
void SaveLog();
|
||||
void ListSchedCodes();
|
||||
void AssignSchedCode();
|
||||
|
65
web/rdxport/rehash.cpp
Normal file
65
web/rdxport/rehash.cpp
Normal file
@@ -0,0 +1,65 @@
|
||||
// rehash.cpp
|
||||
//
|
||||
// Rivendell web service portal -- Rehash service
|
||||
//
|
||||
// (C) Copyright 2017 Fred Gleason <fredg@paravelsystems.com>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License version 2 as
|
||||
// published by the Free Software Foundation.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public
|
||||
// License along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <rdformpost.h>
|
||||
#include <rdlog_line.h>
|
||||
#include <rdweb.h>
|
||||
#include <rduser.h>
|
||||
#include <rdgroup.h>
|
||||
#include <rdconf.h>
|
||||
#include <rdescape_string.h>
|
||||
#include <rdcart_search_text.h>
|
||||
#include <rdhash.h>
|
||||
|
||||
#include <rdxport.h>
|
||||
|
||||
void Xport::Rehash()
|
||||
{
|
||||
int cart_number;
|
||||
int cut_number;
|
||||
|
||||
//
|
||||
// Verify Post
|
||||
//
|
||||
if(!xport_post->getValue("CART_NUMBER",&cart_number)) {
|
||||
XmlExit("Missing CART_NUMBER",400);
|
||||
}
|
||||
if(!xport_post->getValue("CUT_NUMBER",&cut_number)) {
|
||||
XmlExit("Missing CUT_NUMBER",400);
|
||||
}
|
||||
|
||||
//
|
||||
// Process Request
|
||||
//
|
||||
RDCut *cut=new RDCut(cart_number,cut_number);
|
||||
if(!cut->exists()) {
|
||||
delete cut;
|
||||
XmlExit("No such cut",404);
|
||||
}
|
||||
cut->setSha1Hash(RDSha1Hash(RDCut::pathName(cart_number,cut_number)));
|
||||
delete cut;
|
||||
XmlExit("OK",200);
|
||||
}
|
Reference in New Issue
Block a user