Jump to content
Korean Random
StranikS_Scan

PjOrion - редактирование, компиляция, декомпиляция, обфускация модов (Версия: 1.3.5 Дата: 11.08.2019)

Пользуетесь ли вы Орионом?  

314 members have voted

You do not have permission to vote in this poll, or see the poll results. Please sign in or register to vote in this poll.

Recommended Posts

@StranikS_Scan, за разобранный клиент очередное спасибо.

Не хватает только diff соседними версиями c кликабельным индексом, ибо многих интересуют еще и отдельно изменения, которые там картоха намутила, а не только сами файлы.

Так обычно смотрю коммиты в репо у XVM, но они там довольно "не сразу" обновляют.

Share this post


Link to post

Short link
Share on other sites

@StranikS_Scan, за разобранный клиент очередное спасибо.

Не хватает только diff соседними версиями c кликабельным индексом, ибо многих интересуют еще и отдельно изменения, которые там картоха намутила, а не только сами файлы.

Так обычно смотрю коммиты в репо у XVM, но они там довольно "не сразу" обновляют.

Всегда интересовало, что мешает свой локальный репозиторий создать и складировать туда хоть 100500 версий?

Share this post


Link to post

Short link
Share on other sites

Всегда интересовало, что мешает свой локальный репозиторий создать и складировать туда хоть 100500 версий?

Видать не так и нужно.

Share this post


Link to post

Short link
Share on other sites

Видать не так и нужно.

 

Подтверждаю. Мне лично всё что нужно - это два загруженных окна Notepad++, со старыми и с новыми скриптами. Мне даже дифф не нужен, ибо он обычно затрагивает мульон текста в тысяче файлов и проще глянуть конкретные элементы кода в старом и новом окне Notepad-а.

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites

обычно затрагивает мульон текста в тысяче файлов и проще глянуть конкретные элементы кода

Для этого и нужен индекс. Кликнул, перелетел на интересующий тебя файл. Само собой, diff на 50000 строк всего в кучу нечитабелен, а вот набор пофайловых diff`ов и кликабельный индекс - это дело.

Share this post


Link to post

Short link
Share on other sites

@StranikS_Scan, может выложишь Орион в исходниках без обфускатора/протектора?

Слишком много просьб накопилось, проще уже самому всё реализовать...

Да и тормозит из-за защиты exe-файла...

:(

Хотя проще уже с нуля будет написать на новом Delphi, но некоторые вещи интересно подсмотреть у тебя...

Edited by SkepticalFox
  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

 

 

Хотя проще уже с нуля будет написать на новом Delphi

 

Разбежался, Python4Delphi cначала скачай и под новый Делфи перепили +100500 строк кода, вот тогда уже речи можно будет вести о переходах куда-то там.

Share this post


Link to post

Short link
Share on other sites

Python4Delphi cначала скачай и под новый Делфи перепили +100500 строк кода, вот тогда уже речи можно будет вести о переходах куда-то там.

Уже давно его юзаю под новым делфи)

Ладно.

Если будет время в 2017, то может и начну пилить проект.

Слишком много идей, которые жаль оставлять нереализованными...

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

 

 

Слишком много идей, которые жаль оставлять нереализованными...

 

Что за идеи у тебя там такие. 

Share this post


Link to post

Short link
Share on other sites

Что за идеи у тебя там такие.

Сделать питон ядром проекта, а от делфи использовать только UI.

Это позволит достичь максимальной кастомизируемости.

Как в блендере сделано сейчас...

Ну и по мелочевке очень многое хотелось, писал уже ранее.

Edited by SkepticalFox

Share this post


Link to post

Short link
Share on other sites

Сделать питон ядром проекта, а от делфи использовать только UI.

М.б. вообще использовать что-то типа PyQT написать весь проект на питоне?

Или прикрутить то, что есть прикольного в Орионе к какому-нить крупному проекту плагином?

Share this post


Link to post

Short link
Share on other sites

Или прикрутить то, что есть прикольного в Орионе к какому-нить крупному проекту плагином?

Точно не вариант.

Мне понадобятся много кастомных контроллов.

Пунктик в менюбар сублима добавить это не то.

Edited by SkepticalFox

Share this post


Link to post

Short link
Share on other sites

как вариант, в wottransmission (debug_utils.py) можно сделать так:

with open('./res/scripts/common/debug_utils.pyc','rb') as f:
    module = loads(f.read()[8:])

заменить на:

import os, zipfile
packages = './res/packages/scripts'
if not os.path.isfile(packages + '/common/debug_utils.pyc'):
    zipArchive = zipfile.ZipFile(packages + '.pkg', 'r')
    unzippedFile = zipArchive.open('scripts/common/debug_utils.pyc', 'r')
    content = unzippedFile.read()
    if not os.path.exists(packages + '/common'):
        os.makedirs(packages + '/common')
    f = open(packages + '/common/debug_utils.pyc', 'wb')
    f.write(content)
    unzippedFile.close()
    f.close()

        
with open(packages + '/common/debug_utils.pyc','rb') as f:
    module = loads(f.read()[8:])

wottransmission.zip

  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

заменить на:

Зачем такое извращение с распаковкой?

exec '''
# *************************
# Loading original module
# *************************
import os, sys, zipimport
g_original_loader = zipimport.zipimporter(
	os.path.normpath(os.path.join(
		'res/packages/scripts.pkg', __file__, os.path.relpath('.', __name__.replace('.', '/'))
	)).replace(os.sep, '/')
).find_module(__name__, __package__)
if g_original_loader is None:
	raise IOError('Original module could not be found. Module loading impossible.')
exec g_original_loader.get_code(__name__) in target_globals, target_locals
''' in dict(globals(), target_globals=globals(), target_locals=locals())
По идее универсальный код файлового хука. Загружает оригинал из архива в реалтайме встроенными средствами питона. Exec нужен, чтобы загрузчик не оставлял "хвостов" в пространстве имен модуля.

Share this post


Link to post

Short link
Share on other sites

Зачем такое извращение

А для меня вот это извращение:

os.path.normpath(os.path.join('res/packages/scripts.pkg', __file__, os.path.relpath('.', __name__.replace('.', '/')))).replace(os.sep, '/')

Edited by SkepticalFox

Share this post


Link to post

Short link
Share on other sites

А для меня вот это извращение:

Твое предложение как из __file__ и __name__ получить корректную базу пути к файлу, типа тех, что лежат в sys.path? Только там их много (еще и левые быть могут), а нужна конкретная.

Иными словами, получить заюзанную при импорте файла запись из sys.path?

Есть еще вариант через коммонпрефиксы, но это строковая операция и там в итоге гемороя намного больше получается, а нормальная версия (commonpath) - спрашивайте в питоне 3.х.

Share this post


Link to post

Short link
Share on other sites

М.б. вообще использовать что-то типа PyQT написать весь проект на питоне?

Идея огонь. Все написать на питоне и запаковать в exe.

Я нашел кое-что поинтереснее PyQT :)

Посмотрим, что из этого выйдет...

P.S. Ну почему годные идеи приходят всегда во время сессии?...

Твое предложение как из __file__ и __name__ получить корректную базу пути к файлу, типа тех, что лежат в sys.path? Только там их много (еще и левые быть могут), а нужна конкретная.

Иными словами, получить заюзанную при импорте файла запись из sys.path?

Так путь до файла не меняется, почему бы его константой не сделать?

Share this post


Link to post

Short link
Share on other sites

Так путь до файла не меняется, почему бы его константой не сделать?

Ну так в случае каждого конкретного файла прописать путь почти всегда можно константой... только идея в том, чтобы код загрузки не зависел от того, в каком файле его используешь.

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...