def open_output_text_file():
    """modeled after setting up temporary output file in rebuildSearchFile.py.
    """

    resourcesPath = os.path.join(RepositoryRoot, "Resources.txt")
    try:
        resources = ryw.get_resources(resourcesPath)
        tmpOutDir = ryw.get_resource_str(resources, "tmpout")
        if not tmpOutDir:
            ryw.give_bad_news("SelectTexts.py: failed to get tmpout resource.", logging.error)
            return None
    except:
        ryw.give_bad_news("SelectTexts.py: failed to get resources.", logging.error)
        return None

    dateTimeRand = ryw.date_time_rand()
    textfilePath = os.path.join(tmpOutDir, "Texts2Trans" + dateTimeRand)
    ryw.give_news("PHP file is generated at: ", logging.info)
    ryw.give_news(textfilePath, logging.info)

    try:
        outf = open(textfilePath, "w")
        outf.write("<?\n")
        outf.write("$trans_source = array(")
    except:
        ryw.give_bad_news("SelectTexts.py: unable to open output text file: " + textfilePath, logging.error)
        return None

    return outf
Example #2
0
def get_save_search_name():

    badResult = (False, None, None)
    tmpSearchResultDir = decide_search_result_dir()
    if not tmpSearchResultDir:
        ryw.give_bad_news('decide_search_result_dir failed.', logging.error)
        return badResult

    if not os.path.exists(tmpSearchResultDir):
        try:
            os.makedirs(tmpSearchResultDir)
        except:
            ryw.give_bad_news(
                'get_save_search_name: failed to create temporary ' +
                'search results directory: '+
                tmpSearchResultDir, logging.critical)
            return badResult

    if ryw_upload.check_free_space(tmpSearchResultDir,
				   supressWarning = True) <= 0:
        ryw.give_bad_news(
            'get_save_search_name: failed space check :' +
            tmpSearchResultDir, logging.error)
        return badResult

    name = ryw.date_time_rand()
    return (True, tmpSearchResultDir, name)
def make_tmp_name(prefix1, prefix2, suffix):
    """
    prefix1 = oldDir = mywww = c:\Postmanet\nihao\WWW\repository?
    prefix2 = 'SearchFile_incoming'
    suffix = ''
    objPrefix = 'SearchFile_incoming' + dateTimeRand
    tmpdir = c:\Postmanet\nihao\WWW\repository\'SearchFile_incoming' + dateTimeRand
    """
    
    dateTimeRand = ryw.date_time_rand()
    objPrefix = prefix2 + dateTimeRand
    tmpdir = os.path.join(prefix1, objPrefix + suffix)
    return (tmpdir, objPrefix)
def decide_path():
    resourcesPath = os.path.join(RepositoryRoot, 'Resources.txt')

    try:
        resources = ryw.get_resources(resourcesPath)
        tmpOutDir = ryw.get_resource_str(resources, 'tmpout')
        objectStoreRoot = ryw.get_resource_str(resources, 'objectstore')
        if not tmpOutDir or not objectStoreRoot:
            raise NameError('rebuildSearchFile: failed to get resources.')
        dateTimeRand = ryw.date_time_rand()
        newReverseListsFile = os.path.join(
            tmpOutDir, 'NewReverseLists' + dateTimeRand)
        return (True, newReverseListsFile, objectStoreRoot)
    except:
        ryw.give_bad_news('rebuildSearchFile: failed to get resources.')
        success = (False, None, None)
def attempt_just_make_tmpdir(prefix1, prefix2, suffix):
    """attempts to make a temporary directory."""
    
    dateTimeRand = ryw.date_time_rand()

    objPrefix = prefix2 + dateTimeRand
    tmpdir = os.path.join(prefix1, objPrefix + suffix)

    try:
        os.makedirs(tmpdir)
    except:
        ryw.give_bad_news('fatal_error: failed to make temporary directory:'
                          + tmpdir, logging.critical)
        return (None, None)

    logging.debug('attempt_just_make_tmpdir: ' + tmpdir)
    return (tmpdir, objPrefix)
def process_tricky_attributes(form, meta, filename):
    """hidden and obscure attributes."""

    meta['upload_datetime'] = repr(datetime.datetime.now())
    meta['upload_datetime_real'] = repr(datetime.datetime.now())
    #meta['upload_datetime'] = datetime.datetime.now()
    logging.debug('process_tricky_attributes: ' +
                  repr(meta['upload_datetime']))

    if not process_date_time(form, meta):
        return False    
    
    objectID = form.getfirst('object_ID', '')
    if not objectID:
        try:
            objectID = objectstore.generateNewObjectID()
        except:
            ryw.give_bad_news('fatal_error: unable to obtain new object ID.',
                              logging.critical)
            return False
    meta['id'] = objectID

    path = form.getfirst('path', '')
    if not path:
        contentType = form.getfirst('content_type', '')
        if not contentType:
            ryw.give_bad_news('fatal_error: unable to determine content type.',
                              logging.critical)
            return False
        now = datetime.datetime.now()
        monthStr = now.strftime('%y%m/')

        dateTimeRand = ryw.date_time_rand()
        filename = dateTimeRand + '_' + filename
        
        path = os.path.join('/upload', monthStr, contentType, filename)
    meta['path'] = os.path.normpath(path)
    ryw.db_print2('process_tricky_attributes: path is: ' + meta['path'], 57)
    
    return True
def main():

    dateTimeRand = ryw.date_time_rand()
    searchfile = os.path.join(tmpOutDir, 'NewSearchFile' + dateTimeRand)
    osr = ObjectStoreRoot
    
    #ryw.give_news2('ObjectStore is at: ' + osr + '<BR>', logging.info)
    ryw.give_news2('new SearchFile at: ' + searchfile + '<BR>', logging.info)
    ryw.give_news2('generating... &nbsp;&nbsp;', logging.info)
    
    l = glob.glob(osr + "/?/?/?/?/*_META")
    for filename in l:
        meta = loadMeta(filename)
        append_to_new_search_file(searchfile,meta)

    ryw.give_news2('done.<BR>', logging.info)

    osf = OriginalSearchFile
    ryw.give_news2('comparing against ' + osf + ' ... <BR>', logging.info)
    compareSearchFile(osf, searchfile)

    ryw_view.print_footer()
def main():

    #
    # get all the path names straight.
    #
    try:
        ntfsRoot = sys.argv[1]
    except:
        ryw.give_bad_news3(
            'usage: python reformat_ntfs.py /mnt/usb0/Postmanet ' +
            '[new_object_store_path]')
        sys.exit(-1)

    if len(sys.argv) >= 3:
        newObjStoreRoot = sys.argv[2]
    else:
        newObjStoreRoot = NEW_OBJECT_STORE_ROOT

    ryw.db_print3('newObjectStoreRoot is: ' + newObjStoreRoot, 62)
        
    if (not ntfsRoot) or (not os.path.exists(ntfsRoot)):
        ryw.give_bad_news3("can't find NTFS root: " + ntfsRoot)
        sys.exit(-1)

    ryw.db_print3('NTFS root is at: ' + ntfsRoot, 61)

    repositoryRoot = os.path.join(ntfsRoot, 'repository')
    oldSearchFileName = os.path.join(repositoryRoot, 'SearchFile')
    dateTimeRand = ryw.date_time_rand()
    newSearchFileName = os.path.join(repositoryRoot,
                                     'NewSearchFile' + dateTimeRand)

    objectStoreRoot = os.path.join(repositoryRoot, 'WWW',
                                   'ObjectStore')
    if (not os.path.exists(objectStoreRoot)):
        ryw.give_bad_news3("can't find object store: " + objectStoreRoot)
        sys.exit(-1)
    ryw.db_print3('object store root is at: ' + objectStoreRoot, 61)


    #
    # open the new search file.
    #
    try:
        newSearchFileHandle = open(newSearchFileName, 'ab')
    except:
        ryw.give_bad_news3('failed to open new search file: %s\n' % \
                           (searchfile,))
        sys.exit(-1)
    

    #
    # go through all the individual meta files.
    #
    l = glob.glob(objectStoreRoot + "/?/?/?/?/*_META")
    ryw.give_news3('rewriting meta data files...')
    for filename in l:
        ryw.db_print3('found meta: ' + filename, 61)
        meta = load_meta(filename)
        change_meta(meta, newObjStoreRoot)
        rewrite_meta(filename, meta)
        append_to_new_search_file(newSearchFileHandle, meta)



    #
    # replacing the old search file.
    #

    #ryw.copy_file_carefully('/u/rywang/tmp/x1',
    #                        '/u/rywang/tmp/x2',
    #                        '/u/rywang/tmp',
    #                        None,
    #                        'SearchFile_reformat')

    newSearchFileHandle.close()
    ryw.copy_file_carefully(oldSearchFileName, newSearchFileName,
                            repositoryRoot, None, 'SearchFile_reformat')
    ryw.give_news3('replacing search file: ' + oldSearchFileName +
                   ' <- ' + newSearchFileName)