diff --git a/text_editor_hastebin.py b/text_editor_hastebin.py deleted file mode 100644 index 73029b870b68d58ed6bd78bc23a267f34cfef413..0000000000000000000000000000000000000000 --- a/text_editor_hastebin.py +++ /dev/null @@ -1,171 +0,0 @@ -# ##### BEGIN GPL LICENSE BLOCK ##### -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# -# ##### END GPL LICENSE BLOCK ##### - -bl_info = { - "name": "hastebin", - "author": "Dalai Felinto (dfelinto)", - "version": (0, 8), - "blender": (2, 80, 0), - "location": "Text editor > Properties panel", - "description": "Send your selection or text to hastebin.com", - "doc_url": "http://wiki.blender.org/index.php/Extensions:2.6/Py/" - "Scripts/Text_Editor/hastebin", - "tracker_url": "https://developer.blender.org/maniphest/task/edit/form/2/", - "category": "Development"} - - -import bpy - -class TEXT_PT_hastebin(bpy.types.Panel): - bl_space_type = 'TEXT_EDITOR' - bl_region_type = 'UI' - bl_label = "hastebin.com" - bl_category = 'Dev' - bl_options = {'DEFAULT_CLOSED'} - - def draw(self, context): - layout = self.layout - layout.operator("text.hastebin", icon='URL') - layout.prop(context.scene, "use_webbrowser") - - -class TEXT_OT_hastebin(bpy.types.Operator): - """""" - bl_idname = "text.hastebin" - bl_label = "hastebin.com" - bl_description = "Send the current text or selection to http://hastebin.com" - - @classmethod - def poll(cls, context): - if context.area.type != 'TEXT_EDITOR': - return False - else: - return context.space_data.text != None - - def invoke(self, context, event): - import webbrowser - st = context.space_data - - # get the selected text - text = self.get_selected_text(st.text) - # if no text is selected send the whole file - if text is None: text = st.text.as_string() - - # send the text and receive the returned page - page = self.send_text(text) - - if page is None: - return {'CANCELLED'} - - # store the link in the clipboard - bpy.context.window_manager.clipboard = page - - if context.scene.use_webbrowser: - try: - webbrowser.open_new_tab(page) - except: - self.report({'WARNING'}, "Error in opening the page %s." % (page)) - - return {'FINISHED'} - - def send_text(self, text): - """""" - import requests - base_url = "https://hastebin.com" - - try: - response = requests.post(base_url + "/documents", text) - final_url = "%s/%s" % (base_url, response.json()['key']) - - except requests.exceptions.SSLError: - self.report({'ERROR'}, "Error with SSL authorization, requires a more recent Blender") - return None - - except: - self.report({'ERROR'}, "Error in sending the text to the server.") - return None - - else: - return final_url - - def get_selected_text(self, text): - """""" - current_line = text.current_line - select_end_line = text.select_end_line - - current_character = text.current_character - select_end_character = text.select_end_character - - # if there is no selected text return None - if current_line == select_end_line: - if current_character == select_end_character: - return None - else: - return current_line.body[min(current_character,select_end_character):max(current_character,select_end_character)] - - text_return = None - writing = False - normal_order = True # selection from top to bottom - - for line in text.lines: - if not writing: - if line == current_line: - text_return = current_line.body[current_character:] + "\n" - writing = True - continue - elif line == select_end_line: - text_return = select_end_line.body[select_end_character:] + "\n" - writing = True - normal_order = False - continue - else: - if normal_order: - if line == select_end_line: - text_return += select_end_line.body[:select_end_character] - break - else: - text_return += line.body + "\n" - continue - else: - if line == current_line: - text_return += current_line.body[:current_character] - break - else: - text_return += line.body + "\n" - continue - - return text_return - - -def register(): - bpy.types.Scene.use_webbrowser = bpy.props.BoolProperty( - name='Launch Browser', - description='Opens the page with the submitted text', - default=True) - - bpy.utils.register_class(TEXT_PT_hastebin) - bpy.utils.register_class(TEXT_OT_hastebin) - - -def unregister(): - del bpy.types.Scene.use_webbrowser - bpy.utils.unregister_class(TEXT_PT_hastebin) - bpy.utils.unregister_class(TEXT_OT_hastebin) - -if __name__ == "__main__": - register()