Example #1
0
    def getOriginal(self, outputfile=""):

        orig = self.getMetaData().GetOriginal()
        input = open(self.filename, "rb")
        input.seek(0, 2)
        input_length = input.tell()
        input.seek(0)
        print input.tell()

        com_start = input_length
        output = open(outputfile, "wb")

        for item in self.items:
            if item[1] == "COM":
                com_start = item[0]
                index = self.items.index(item)
                com_end = self.items[index + 1][0]
                input.seek(0)
                break

        # write until old comment
        output.write(input.read(com_start))
        if len(orig) > 0:
            output.write("\xFF\xFE")
            output.write(reverse(ol16(len(orig))))
            output.write(orig)
        input.seek(com_end)
        # write file footer
        while input.tell() < input_length:
            output.write(input.read(1))
        output.close()
        input.close()
Example #2
0
    def getOriginal(self, outputfile=""):

        orig = self.getMetaData().GetOriginal()
        input = open(self.filename, "rb")
        input.seek(0, 2)
        input_length = input.tell()
        input.seek(0)
        print input.tell()

        com_start = input_length
        output = open(outputfile, "wb")

        for item in self.items:
            if item[1] == "COM":
                com_start = item[0]
                index = self.items.index(item)
                com_end = self.items[index + 1][0]
                input.seek(0)
                break

        # write until old comment
        output.write(input.read(com_start))
        if len(orig) > 0:
            output.write("\xFF\xFE")
            output.write(reverse(ol16(len(orig))))
            output.write(orig)
        input.seek(com_end)
        # write file footer
        while input.tell() < input_length:
            output.write(input.read(1))
        output.close()
        input.close()
Example #3
0
    def writeMetaData(self, data, outputfile):
        index = -1

        for item in self.items:
            if item[1] == "SOF0":
                index = self.items.index(item)
        if index < 0:
            raise SyntaxError("wrong filetype")

        if self.items[index - 1][1] == "COM":
            # update value
            _end = self.items[index - 1][0]
            print "update comment"
            input = open(self.filename, "rb")
            input.seek(self.items[index - 1][0] + 4)
            data = LZAMetadata(data)
            data.addOriginal(
                input.read(self.items[index][0] - self.items[index - 1][0] -
                           4))
            input.close()

        else:
            # insert value
            _end = self.items[index][0]

        input = open(self.filename, "rb")
        output = open(outputfile, "wb")
        output.write(input.read(_end))

        output.write("\xFF\xFE")
        output.write(reverse(ol16(len(str(data)))))

        output.write(str(data))
        input.seek(self.items[index][0])

        output.write(input.read(self.src_length - input.tell()))
        input.close()
        output.close()
Example #4
0
    def writeMetaData(self, data, outputfile):
        index = -1

        for item in self.items:
            if item[1] == "SOF0":
                index = self.items.index(item)
        if index < 0:
            raise SyntaxError("wrong filetype")

        if self.items[index - 1][1] == "COM":
            # update value
            _end = self.items[index - 1][0]
            print "update comment"
            input = open(self.filename, "rb")
            input.seek(self.items[index - 1][0] + 4)
            data = LZAMetadata(data)
            data.addOriginal(input.read(self.items[index][0] - self.items[index - 1][0] - 4))
            input.close()

        else:
            # insert value
            _end = self.items[index][0]

        input = open(self.filename, "rb")
        output = open(outputfile, "wb")
        output.write(input.read(_end))

        output.write("\xFF\xFE")
        output.write(reverse(ol16(len(str(data)))))

        output.write(str(data))
        input.seek(self.items[index][0])

        output.write(input.read(self.src_length - input.tell()))
        input.close()
        output.close()