def getTargetFilePath(file_name):
    file_path = Tools.strJoin(p, file_name, ext)
    if os.path.isfile(file_path):
        new_file_name = Tools.strJoin(
            file_name, ' ', MyNotes.Search.getTodayDate("%d.%m.%Y %H.%M"))
        file_path = Tools.strJoin(p, new_file_name, ext)
    return file_path
def getTargetFilePath(file_name):
    file_path = Tools.strJoin(p, file_name, ext)
    if os.path.isfile(file_path):
        new_file_name = Tools.strJoin(
            file_name, ' ', MyNotes.Search.getTodayDate(getDefaultDate()))
        file_path = Tools.strJoin(p, new_file_name, ext)
    return file_path
def getTemplate():
    # Get template path from previous wf step
    template = Tools.getEnv('template_path')
    notes_path = md.getNotesPath()
    default_template = getDefaultTemplate()
    return Tools.strJoin(notes_path,
                         default_template) if template == str() else template
Ejemplo n.º 4
0
    def getTargetFilePath(self, file_name):
        """

        construct markdown file path


        Returns:
            str: markdown file path
        """
        file_name = file_name.rstrip().lstrip()
        file_path = Tools.strJoin(self.path, file_name, self.extension)
        if os.path.isfile(file_path):
            new_file_name = Tools.strJoin(
                file_name, ' ', self.getTodayDate('%d-%m-%Y %H-%M-%S'))
            file_path = Tools.strJoin(self.path, new_file_name, self.extension)
        return file_path
Ejemplo n.º 5
0
    def getUrlScheme(f):
        """
        Gets the URL Scheme setup in Alfred Preferences

        Args:
            f(str): md file to add at the end of url scheme

        Returns:
            str: URL scheme
        """
        url_scheme = Tools.getEnv('url_scheme')
        return Tools.strJoin(url_scheme, urllib.pathname2url(f))
Ejemplo n.º 6
0
    def getTemplate(self, template_path):
        """

        Get template path from previous wf step, reads env variable

        Returns:
            str: path to template.md
        """
        notes_path = self.path
        default_template = self.getDefaultTemplate()
        return Tools.strJoin(
            notes_path,
            default_template) if template_path == str() else template_path
Ejemplo n.º 7
0
    def getTargetFilePath(self, file_name):
        """

        construct markdown file path


        Returns:
            str: markdown file path
        """
        file_name = file_name.rstrip().lstrip()
        # TODO: Delete
        # file_path = Tools.strJoin(self.path, file_name, self.extension)
        file_path = os.path.join(self.path,
                                 "{0}{1}".format(file_name, self.extension))
        if os.path.isfile(file_path):
            new_file_name = Tools.strJoin(
                file_name, ' ', self.getTodayDate('%d-%m-%Y %H-%M-%S'))
            # TODO: Delete
            # file_path = Tools.strJoin(self.path, new_file_name, self.extension)
            file_path = os.path.join(
                self.path, "{0}{1}".format(new_file_name, self.extension))
        return file_path
Ejemplo n.º 8
0
for query in files_to_delete:
    file_path, last_query = getFileQuery(query)
    if os.path.isfile(file_path) and file_path.endswith(ext):
        file_name = os.path.basename(file_path)
        # Search for links to other assets and delete each file
        parent = mn.getNotesPath()
        assetfile_links = getAssetsLinks(parent, file_path)
        is_assetfile_deleted = False
        for l in assetfile_links:
            # Avoid Markdown file removal
            if not (l.endswith(ext)):
                is_assetfile_deleted = rmFile(l)

        # Delete Assets Folder
        remove_ext = len(ext)
        assets_path = Tools.strJoin(file_path[:-remove_ext], ".assets")
        assets_path_legacy = Tools.strJoin(file_path[:-remove_ext])
        is_asset_deleted = rmDir(assets_path) or rmDir(
            assets_path_legacy) or is_assetfile_deleted

        # Finally delete the MD File
        is_file_deleted = rmFile(file_path)

        # Create Notification Message
        if len(files_to_delete) == 1:
            return_text = '- MD Note DELETED' if is_file_deleted else "Cannot delete file: {0}".format(
                file_name)
            return_text += '\n- Assets DELETED' if is_asset_deleted else str()

if len(files_to_delete) > 1:
    return_text = "{0} Notes and coresponding Assets deleted".format(
        tmp = tmp.replace(i, '-')
    return tmp.encode('utf-8')


def writeMarkdown(md_content, md_path):
    with open(md_path, "w+") as f:
        f.write(md_content.encode('utf-8'))


mn = MyNotes.Search()
ext = mn.getNotesExtension()
p = mn.getNotesPath()
argv = Tools.getArgv(1)
url = argv if argv.startswith(
    'http://') or argv.startswith('https://') else str()

# TODO: When HTML is not fetchable, the URL will be used.
# Fix formatting from <url> to markdown url [title](url)

if url:
    markdown = Markdown(url)
    today = markdown.getTodayDate(fmt="%d.%m.%Y")
    today_time = markdown.getTodayDate(fmt="%d-%m-%Y %H-%M")
    md = markdown.getMarkdownContent()
    file_name = parseFilename(markdown.getTitle())
    if file_name == str():
        file_name = Tools.strJoin('WebClip from ', today_time)
    fPath = mn.strJoin(p, file_name, ext)
    writeMarkdown(md, fPath)
    sys.stdout.write(fPath)
    # Write search results into WF object

    for f in search_results_list:
        c_date = Tools.getDateStr(f['ctime'])
        m_date = Tools.getDateStr(f['mtime'])
        # md_path = urllib.pathname2url(f['filename'])
        md_path = f['filename'].replace(' ', '%20')
        url_scheme_path = md_search.getUrlScheme(f['path'])
        wf.setItem(title=f['title'],
                   subtitle="Created: %s, Modified: %s" % (c_date, m_date),
                   type='file',
                   arg=f['path'])
        # Mod for CTRL - delete a Note
        wf.addMod(key="ctrl",
                  arg=Tools.strJoin(f['path'], '|', query),
                  subtitle="Delete Note",
                  valid=True,
                  icon_path="icons/delete.png",
                  icon_type="image")
        wf.addModsToItem()
        # Mod for CMD - get markdown link to Note
        wf.addMod(key='cmd',
                  arg='[%s](%s)' % (f['filename'], md_path),
                  subtitle='Copy Markdown Link to Clipboard',
                  valid=True,
                  icon_path='icons/link.png',
                  icon_type='image')
        wf.addModsToItem()
        # Mod for ALT - Export to Evernote
        wf.addMod(key='alt',
Ejemplo n.º 11
0
 def getUrlScheme(f):
     url_scheme = Tools.getEnv('url_scheme')
     return Tools.strJoin(url_scheme, urllib.pathname2url(f))
Ejemplo n.º 12
0
SUFFIX = " (DEFAULT)"

# create MD search object
my_notes = MyNotes.Search()

# Load env variables
ext = my_notes.getNotesExtension()
p = my_notes.getNotesPath()
query = Tools.getArgv(1)
default_template = Tools.getEnv('default_template')
template_tag = get_template_tag()

# Get Files sorted in Notes directory
all_files = my_notes.getFilesListSorted()
template_files = sorted(all_files, key=lambda x: x['filename'] != default_template)

wf = Items()
for md_file in template_files:
    if my_notes.isNoteTagged(md_file['path'], template_tag) and query in md_file['filename']:
        suffix = str()
        if md_file['filename'] == default_template:
            suffix = SUFFIX
        wf.setItem(
            title=md_file['filename'] + suffix,
            subtitle="Create new file based on \"{0}\"".format(md_file['filename']),
            arg=Tools.strJoin(md_file['path']),
            type='file'
        )
        wf.addItem()
wf.write()